
:root{
  --font:'Pretendard Variable','Pretendard','Noto Sans KR',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --bg:#f5f7fb; --surface:#fff; --surface2:#f8fafc; --text:#0f172a; --muted:#64748b;
  --border:#e2e8f0; --primary:#2563eb; --primary2:#1d4ed8; --primarySoft:#eff6ff;
  --success:#16a34a; --successSoft:#f0fdf4; --warning:#d97706; --warningSoft:#fff7ed;
  --danger:#dc2626; --dangerSoft:#fef2f2; --violet:#7c3aed; --violetSoft:#f5f3ff;
  --radius:14px; --radiusSm:10px; --shadow:0 2px 10px rgba(15,23,42,.055);
  --control:40px; --max:1600px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px}
button,input,select,textarea{font:inherit} button{cursor:pointer}
.hidden{display:none!important}
.app-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}
.topbar,.subbar-inner,.page-shell{width:100%;max-width:var(--max);margin:auto}
.topbar{height:64px;padding:0 32px;display:flex;align-items:center;gap:26px}
.brand{border:0;background:transparent;display:flex;align-items:center;gap:10px;padding:0;color:var(--text)}
.brand-mark{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,#2563eb,#60a5fa);color:#fff;font-size:16px;font-weight:900}
.brand strong{font-size:20px;letter-spacing:-.5px}
.main-nav{display:flex;align-self:stretch;gap:3px}
.nav-item{position:relative;border:0;background:transparent;color:#475569;padding:0 14px;font-weight:650}
.nav-item:hover{color:var(--text)} .nav-item.active{color:var(--primary)}
.nav-item.active:after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:3px;background:var(--primary);border-radius:99px 99px 0 0}
.header-actions{margin-left:auto;display:flex;align-items:center;gap:8px}
.mode-switch{height:40px;padding:4px;background:#eef2f7;border-radius:11px;display:flex;gap:3px}
.mode-switch button{height:32px;border:0;background:transparent;border-radius:8px;padding:0 11px;color:var(--muted);font-size:12px;font-weight:750}
.mode-switch button.active{background:#fff;color:var(--primary);box-shadow:0 1px 4px rgba(15,23,42,.08)}
.profile-btn{border:0;background:transparent;height:44px;border-radius:11px;padding:4px 8px;display:flex;align-items:center;gap:9px;color:var(--text)}
.profile-btn:hover{background:var(--surface2)}
.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:#e0e7ff;color:#3730a3;font-weight:800}
.profile-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1.2}.profile-copy strong{font-size:13px}.profile-copy small{font-size:11px;color:var(--muted)}
.icon-btn{width:40px;height:40px;border:1px solid var(--border);background:#fff;border-radius:10px;color:#475569}
.mobile-menu{display:none}
.subbar{border-top:1px solid #f1f5f9;background:#fff}.subbar-inner{height:48px;padding:0 32px;display:flex;align-items:center}
.sub-nav{display:flex;gap:4px;overflow:auto;scrollbar-width:none}.sub-nav::-webkit-scrollbar{display:none}
.sub-item{height:34px;border:0;background:transparent;border-radius:9px;padding:0 12px;white-space:nowrap;color:var(--muted);font-size:13px;font-weight:700}
.sub-item.active{background:var(--primarySoft);color:var(--primary)} .sub-item:hover{background:#f8fafc;color:var(--text)}
.page-shell{padding:30px 32px 48px}
.view{display:none}.view.active{display:block}
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}
.eyebrow{margin:0 0 6px;font-size:12px;font-weight:850;color:var(--primary);text-transform:uppercase;letter-spacing:.09em}
h1,h2,h3,p{margin-top:0} h1{font-size:24px;letter-spacing:-.5px;margin-bottom:6px} h2{font-size:20px;letter-spacing:-.3px} h3{font-size:16px}
.page-desc{margin:0;color:var(--muted);line-height:1.6}
.btn{height:var(--control);border-radius:10px;padding:0 14px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-size:13px;font-weight:800}
.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary2)}
.btn-secondary{background:#fff;border-color:var(--border);color:#334155}.btn-secondary:hover{background:#f8fafc}
.btn-danger{background:var(--dangerSoft);border-color:#fecaca;color:var(--danger)}
.btn-ghost{background:transparent;color:#475569;border-color:transparent}
.btn-sm{height:32px;padding:0 10px;border-radius:8px;font-size:12px}
.page-actions{display:flex;gap:8px}
.hero{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,.7fr);gap:18px;margin-bottom:22px}
.hero-main{position:relative;overflow:hidden;min-height:270px;border-radius:18px;padding:30px;background:linear-gradient(130deg,#0f3fa8,#2563eb 55%,#60a5fa);color:#fff;box-shadow:0 14px 35px rgba(37,99,235,.18)}
.hero-main:after{content:"";position:absolute;width:330px;height:330px;border-radius:50%;right:-90px;top:-140px;background:rgba(255,255,255,.12)}
.hero-main .pill{display:inline-flex;height:28px;align-items:center;padding:0 10px;border-radius:999px;background:rgba(255,255,255,.17);font-size:12px;font-weight:800}
.hero-main h2{font-size:31px;margin:22px 0 10px;max-width:620px;line-height:1.25}
.hero-main p{max-width:650px;line-height:1.7;color:rgba(255,255,255,.82)}
.hero-buttons{display:flex;gap:9px;margin-top:26px}.hero-buttons .btn{border-color:rgba(255,255,255,.22)}.hero-buttons .btn:first-child{background:#fff;color:#1d4ed8}.hero-buttons .btn:last-child{background:rgba(255,255,255,.12);color:#fff}
.hero-side{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.quick-card,.panel,.event-card,.stat-card,.reading-card,.settings-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.quick-card{padding:17px;display:flex;flex-direction:column;justify-content:space-between;min-height:129px;transition:.16s}.quick-card:hover{transform:translateY(-2px);border-color:#cbd5e1}
.quick-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--primarySoft);color:var(--primary)}
.quick-card strong{font-size:13px}.quick-card span:last-child{font-size:12px;color:var(--muted)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:28px 0 14px}.section-head h2{margin:0 0 4px}.section-head p{margin:0;color:var(--muted);font-size:13px}
.event-toolbar{display:flex;gap:8px;flex-wrap:wrap}.chip{height:34px;border-radius:999px;border:1px solid var(--border);background:#fff;padding:0 12px;font-size:12px;font-weight:750;color:#475569}.chip.active{background:var(--primarySoft);color:var(--primary);border-color:#bfdbfe}
.events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.event-card{overflow:hidden;transition:.17s;cursor:pointer}.event-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(15,23,42,.09)}
.event-cover{position:relative;height:170px;background:linear-gradient(135deg,#dbeafe,#bfdbfe);display:flex;align-items:flex-end;padding:16px;overflow:hidden}
.event-cover:after{content:"";position:absolute;inset:auto -15% -65% auto;width:230px;height:230px;border-radius:50%;background:rgba(255,255,255,.35)}
.cover-blue{background:linear-gradient(135deg,#1d4ed8,#60a5fa)}.cover-violet{background:linear-gradient(135deg,#6d28d9,#c4b5fd)}.cover-green{background:linear-gradient(135deg,#15803d,#86efac)}.cover-orange{background:linear-gradient(135deg,#c2410c,#fdba74)}
.event-kind{position:absolute;left:14px;top:14px;height:27px;display:inline-flex;align-items:center;padding:0 9px;background:rgba(255,255,255,.92);color:#334155;border-radius:999px;font-size:11px;font-weight:850}
.cover-title{position:relative;z-index:2;color:#fff;font-size:22px;font-weight:850;line-height:1.25;text-shadow:0 2px 10px rgba(0,0,0,.16);max-width:88%}
.event-body{padding:16px}.event-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}#eventGridServer .event-title-row > strong {
  flex: 1 1 0%;
  min-width: 0;
  overflow-wrap: anywhere;
}

#eventGridServer .event-title-row > .badge {
  flex: 0 0 auto;
  white-space: nowrap;
  word-break: keep-all;
  justify-content: center;
}{font-size:16px;line-height:1.4}.event-meta{margin-top:12px;display:grid;gap:7px;color:#64748b;font-size:12px}.event-meta span{display:flex;align-items:center;gap:7px}
.badge{display:inline-flex;height:26px;align-items:center;padding:0 9px;border-radius:999px;font-size:11px;font-weight:850}.badge-primary{background:var(--primarySoft);color:var(--primary)}.badge-success{background:var(--successSoft);color:var(--success)}.badge-warning{background:var(--warningSoft);color:var(--warning)}.badge-gray{background:#f1f5f9;color:#64748b}.badge-danger{background:var(--dangerSoft);color:var(--danger)}.badge-violet{background:var(--violetSoft);color:var(--violet)}
.event-footer{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;border-top:1px solid #eef2f7}.event-footer small{color:var(--muted)}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stat-card{padding:18px}.stat-card .label{display:flex;justify-content:space-between;color:var(--muted);font-size:12px;font-weight:700}.stat-card strong{display:block;font-size:30px;margin:10px 0 2px}.stat-card small{color:var(--muted)}
.panel{overflow:hidden}.panel-head{min-height:58px;padding:14px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head h3{margin:0}.panel-body{padding:18px}
.search-wrap{height:40px;min-width:260px;border:1px solid var(--border);border-radius:10px;background:#fff;display:flex;align-items:center;gap:8px;padding:0 11px;color:#94a3b8}.search-wrap input{width:100%;border:0;outline:0;background:transparent}
.control,.input,.textarea{border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);outline:0}.control,.input{height:40px;padding:0 12px}.textarea{padding:11px 12px;min-height:92px;resize:vertical}
.control:focus,.input:focus,.textarea:focus,.search-wrap:focus-within{border-color:#93c5fd;box-shadow:0 0 0 3px #dbeafe}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--border)}.toolbar-left,.toolbar-right{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;min-width:780px}.data-table th{height:44px;padding:0 16px;background:#f8fafc;border-bottom:1px solid var(--border);font-size:12px;color:#64748b;text-align:left}.data-table td{height:50px;padding:10px 16px;border-bottom:1px solid #eef2f7;color:#334155}.data-table tbody tr:hover{background:#fbfdff}.data-table strong{color:var(--text)}.align-right{text-align:right!important}
.empty{padding:54px 20px;text-align:center;color:var(--muted)}.empty-icon{font-size:36px;margin-bottom:10px}
.calendar-head{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border)}.calendar-head h2{margin:0}
.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekday{height:40px;background:#f8fafc;border-bottom:1px solid var(--border);display:grid;place-items:center;font-size:12px;font-weight:800;color:#64748b}.day{min-height:112px;padding:9px;border-right:1px solid #eef2f7;border-bottom:1px solid #eef2f7;background:#fff}.day:nth-child(7n){border-right:0}.day-num{font-size:12px;color:#475569}.day.today .day-num{display:inline-grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--primary);color:#fff;font-weight:850}.cal-event{display:block;margin-top:8px;padding:5px 7px;border-radius:7px;background:var(--primarySoft);color:var(--primary);font-size:11px;font-weight:750;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.two-col{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.6fr);gap:16px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.field{display:flex;flex-direction:column;gap:7px}.field.full{grid-column:1/-1}.field>label,.field>span{font-size:12px;font-weight:800;color:#334155}.help{font-size:11px;color:var(--muted);line-height:1.5}
.editor-shell{border:1px solid var(--border);border-radius:12px;overflow:hidden}.editor-toolbar{min-height:44px;padding:6px 8px;background:#f8fafc;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:4px;flex-wrap:wrap}.editor-toolbar button{height:30px;border:1px solid transparent;background:transparent;border-radius:7px;padding:0 8px;color:#475569;font-size:12px}.editor-toolbar button:hover{background:#fff;border-color:var(--border)}.editor-content{min-height:260px;padding:22px;outline:0;line-height:1.72}.editor-content h2{font-size:20px}
.reading-card{padding:24px}.progress{height:9px;border-radius:999px;background:#e2e8f0;overflow:hidden}.progress span{display:block;height:100%;background:var(--primary);border-radius:999px}
.settings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.settings-card{border:1px solid var(--border);padding:18px;display:flex;align-items:center;gap:13px;text-align:left}.settings-card .s-icon{width:43px;height:43px;border-radius:12px;background:var(--primarySoft);display:grid;place-items:center;font-size:20px}.settings-card div{flex:1;display:flex;flex-direction:column;gap:4px}.settings-card small{color:var(--muted)}
.modal-backdrop{display:none;position:fixed;inset:0;z-index:100;background:rgba(15,23,42,.46);align-items:center;justify-content:center;padding:22px}.modal-backdrop.open{display:flex}
.modal{width:100%;max-height:92vh;background:#fff;border-radius:16px;box-shadow:0 28px 70px rgba(15,23,42,.28);display:flex;flex-direction:column;overflow:hidden}.modal-sm{max-width:480px}.modal-md{max-width:640px}.modal-lg{max-width:900px}.modal-xl{max-width:1120px}
.modal-head{padding:18px 20px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start}.modal-head h2{margin:0}.modal-body{padding:20px;overflow:auto}.modal-foot{padding:14px 20px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px}
.detail-hero{border-radius:14px;min-height:220px;padding:24px;display:flex;flex-direction:column;justify-content:flex-end;color:#fff;background:linear-gradient(135deg,#1d4ed8,#60a5fa);margin-bottom:18px}.detail-hero h2{font-size:28px;margin:10px 0 6px}.detail-hero p{color:rgba(255,255,255,.85);margin:0}
.detail-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.meta-box{background:#f8fafc;border:1px solid var(--border);border-radius:11px;padding:12px}.meta-box small{display:block;color:var(--muted);margin-bottom:4px}.meta-box strong{font-size:13px}
.rounds{display:flex;gap:7px;flex-wrap:wrap}.round-chip{border:1px solid var(--border);border-radius:10px;background:#fff;height:38px;padding:0 12px;color:#475569;font-size:12px;font-weight:750}.round-chip.active{border-color:#93c5fd;background:var(--primarySoft);color:var(--primary)}
.toast-wrap{position:fixed;right:22px;bottom:22px;z-index:200;display:grid;gap:8px}.toast{min-width:270px;max-width:360px;background:#0f172a;color:#fff;padding:13px 15px;border-radius:12px;box-shadow:0 12px 30px rgba(15,23,42,.2);animation:toastIn .2s ease}.toast small{display:block;color:#cbd5e1;margin-top:3px}@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.mobile-nav-panel{display:none}
@media(max-width:1050px){.main-nav{display:none}.mobile-menu{display:block}.profile-copy{display:none}.hero{grid-template-columns:1fr}.hero-side{grid-template-columns:repeat(4,1fr)}.events-grid{grid-template-columns:repeat(2,1fr)}.two-col{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){
 .topbar,.subbar-inner,.page-shell{padding-left:16px;padding-right:16px}.page-shell{padding-top:20px}.mode-switch{display:none}.page-head{align-items:flex-start;flex-direction:column}.page-actions{width:100%}.page-actions .btn{flex:1}.hero-main{min-height:240px;padding:22px}.hero-main h2{font-size:25px}.hero-side{grid-template-columns:1fr 1fr}.events-grid{grid-template-columns:1fr}.event-cover{height:150px}.stats-grid{grid-template-columns:1fr 1fr;gap:10px}.stat-card{padding:15px}.stat-card strong{font-size:26px}.toolbar{align-items:stretch}.toolbar-left,.toolbar-right{width:100%}.search-wrap{min-width:0;flex:1}.control{min-width:0;flex:1}.calendar-grid{font-size:11px}.day{min-height:78px;padding:6px}.cal-event{font-size:0;width:8px;height:8px;padding:0;border-radius:50%}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.detail-meta{grid-template-columns:1fr}.settings-grid{grid-template-columns:1fr}.modal-backdrop{padding:8px;align-items:flex-end}.modal{border-radius:16px 16px 0 0;max-height:95vh}.modal-body{padding:16px}.mobile-nav-panel.open{display:block;position:fixed;left:12px;right:12px;top:70px;z-index:80;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 16px 40px rgba(15,23,42,.18);padding:8px}.mobile-nav-panel button{display:block;width:100%;height:42px;border:0;background:transparent;border-radius:9px;text-align:left;padding:0 12px;font-weight:700;color:#334155}.mobile-nav-panel button:hover{background:#f8fafc}
}

/* Admin participant visibility */
.participant-count-btn{height:32px;border:1px solid #bfdbfe;background:var(--primarySoft);color:var(--primary);border-radius:999px;padding:0 11px;font-size:12px;font-weight:850}
.participant-count-btn:hover{background:#dbeafe}
.admin-hint-card{margin-top:14px;padding:16px 18px;border:1px dashed #bfdbfe;background:#f8fbff;border-radius:14px;display:flex;gap:12px;align-items:flex-start;color:#334155}.admin-hint-card>span{font-size:24px}.admin-hint-card strong{display:block;margin-bottom:4px}.admin-hint-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}
.participant-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}.participant-summary .sum-card{padding:13px 14px;border:1px solid var(--border);border-radius:11px;background:#f8fafc}.participant-summary small{display:block;color:var(--muted);margin-bottom:5px}.participant-summary strong{font-size:18px}
.selected-row{background:#f8fbff}

/* Bible: preserve the identity of the original dashboard inside ITDA shell */
.bible-hero{position:relative;overflow:hidden;min-height:235px;border-radius:20px;padding:30px;margin-bottom:18px;background:radial-gradient(circle at 90% 5%,rgba(255,255,255,.22),transparent 28%),linear-gradient(135deg,#312e81,#4f46e5 52%,#7c3aed);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:30px;box-shadow:0 16px 36px rgba(79,70,229,.18)}
.bible-hero h1{font-size:31px;margin-bottom:8px}.bible-hero p:not(.eyebrow){color:rgba(255,255,255,.78);font-size:15px}.bible-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.bible-primary{background:#fff;color:#4338ca}.bible-secondary{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:#fff}.bible-streak{min-width:190px;padding:20px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:rgba(255,255,255,.11);backdrop-filter:blur(8px)}.bible-streak small,.bible-streak span{display:block;color:rgba(255,255,255,.76)}.bible-streak strong{display:block;font-size:38px;margin:8px 0}.bible-streak span{font-size:12px}
.bible-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.bible-progress-card .progress{margin-top:12px}.bible-big-progress{display:flex;align-items:end;gap:9px}.bible-big-progress strong{font-size:34px;color:#4338ca}.bible-big-progress span{color:var(--muted);padding-bottom:5px}.memory-note{border-top:1px dashed #cbd5e1;margin-top:18px;padding-top:15px}.memory-title{font-size:13px;font-weight:850;margin-bottom:9px}.memory-note blockquote{margin:0 0 7px;padding:11px 13px;border-left:3px solid #818cf8;background:#f8fafc;border-radius:0 10px 10px 0;line-height:1.7;color:#334155}.memory-note small{color:var(--muted)}
.book-progress-list{display:grid;gap:15px}.book-row{display:grid;grid-template-columns:78px 1fr 40px;align-items:center;gap:10px;font-size:12px}.book-row>span{font-weight:750}.book-row>b{text-align:right;color:#4338ca}.book-bar{height:8px;border-radius:999px;background:#eef2ff;overflow:hidden}.book-bar i{display:block;height:100%;background:linear-gradient(90deg,#4f46e5,#8b5cf6);border-radius:999px}
.bible-calendar-card{overflow:hidden}.bible-month{display:grid;grid-template-columns:repeat(7,1fr)}.bible-month .weekday{background:#fafaff}.bible-day{min-height:88px;padding:8px;border-right:1px solid #eef2f7;border-bottom:1px solid #eef2f7}.bible-day:nth-child(7n){border-right:0}.bible-day b{font-size:11px;color:#64748b}.bible-day.read{background:#fafaff}.bible-day.read:after{content:'✓';display:grid;place-items:center;width:22px;height:22px;margin-top:10px;border-radius:50%;background:#eef2ff;color:#4f46e5;font-weight:900}.bible-day.today{box-shadow:inset 0 0 0 2px #818cf8}.bible-day.today b{color:#4338ca;font-weight:900}
.today-word-card{padding:4px}.today-word-card h2{font-size:25px;margin:15px 0 10px}.today-word-card p{line-height:1.8;color:#475569;background:#fafaff;border:1px solid #e0e7ff;padding:17px;border-radius:12px}.today-word-card textarea{width:100%;margin-top:8px;min-height:130px}
@media(max-width:900px){.bible-dashboard-grid{grid-template-columns:1fr}.bible-hero{align-items:flex-start;flex-direction:column}.bible-streak{width:100%;min-width:0}.participant-summary{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.bible-hero{padding:22px}.bible-hero h1{font-size:25px}.bible-actions .btn{flex:1;min-width:130px}.bible-month .bible-day{min-height:64px}.participant-summary{grid-template-columns:1fr 1fr}}

/* v3: document list/detail + readership */
.title-link{
  border:0;background:transparent;padding:0;color:var(--text);font-weight:800;text-align:left;
  text-decoration:none;line-height:1.45;cursor:pointer;
}
.title-link:hover{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.read-count{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:850}
.read-count.has-unread{background:var(--warningSoft);color:var(--warning)}
.read-count.all-read{background:var(--successSoft);color:var(--success)}
.document-detail{
  max-width:900px;margin:0 auto 22px;padding:26px 28px;border:1px solid var(--border);border-radius:14px;
  background:#fff;line-height:1.78;color:#1e293b;
}
.document-detail h1,.document-detail h2,.document-detail h3{color:var(--text);margin:1.2em 0 .55em}
.document-detail h2{font-size:20px}.document-detail p{line-height:1.78}.document-detail li{margin:5px 0}
.document-detail table{width:100%;border-collapse:collapse}.document-detail th,.document-detail td{border:1px solid var(--border);padding:8px}
.reader-section{max-width:900px;margin:0 auto}
.reader-head{margin-bottom:12px}.reader-head h3{margin-bottom:4px}.reader-head p{margin:0;color:var(--muted);font-size:12px}
.reader-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.reader-box{border:1px solid var(--border);border-radius:13px;overflow:hidden;background:#fff}
.reader-box.read{border-color:#bbf7d0}.reader-box.unread{border-color:#fed7aa}
.reader-box-title{padding:11px 13px;border-bottom:1px solid var(--border);font-size:12px;font-weight:850}
.reader-box.read .reader-box-title{background:var(--successSoft);color:var(--success)}
.reader-box.unread .reader-box-title{background:var(--warningSoft);color:var(--warning)}
.reader-list{padding:12px;display:flex;flex-wrap:wrap;gap:8px}
.reader-chip{min-width:145px;display:flex;align-items:center;gap:8px;border:1px solid var(--border);background:#fff;border-radius:10px;padding:7px 9px}
.reader-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--primarySoft);color:var(--primary);font-size:11px;font-weight:900}
.reader-chip>span:last-child{display:flex;flex-direction:column;line-height:1.2}.reader-chip b{font-size:12px}.reader-chip small{font-size:10px;color:var(--muted);margin-top:2px}
.reader-empty{font-size:12px;color:var(--muted);padding:6px 2px}
.detail-subsection{max-width:900px;margin:0 auto 12px;padding:14px 16px;border:1px solid var(--border);border-radius:13px;background:#f8fafc}
.detail-subsection h3{margin-bottom:8px}.inline-readers{padding:0}
.check-chip-wrap{display:flex;flex-wrap:wrap;gap:7px;padding:10px;border:1px solid var(--border);border-radius:11px;background:#f8fafc}
.check-chip{display:inline-flex}.check-chip input{position:absolute;opacity:0;pointer-events:none}
.check-chip span{height:32px;display:inline-flex;align-items:center;padding:0 10px;border:1px solid var(--border);border-radius:999px;background:#fff;color:#475569;font-size:11px;font-weight:750;cursor:pointer}
.check-chip input:checked+span{border-color:#93c5fd;background:var(--primarySoft);color:var(--primary)}
@media(max-width:700px){
  .reader-columns{grid-template-columns:1fr}
  .reader-chip{min-width:calc(50% - 4px)}
  .document-detail{padding:18px}
}

/* v4: selectable readership permissions */
.visibility-options{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.radio-card{position:relative;display:block}
.radio-card input{position:absolute;opacity:0;pointer-events:none}
.radio-card>span{min-height:66px;border:1px solid var(--border);border-radius:11px;background:#fff;padding:11px 12px;display:flex;flex-direction:column;gap:4px;cursor:pointer}
.radio-card b{font-size:12px;color:#334155}.radio-card small{font-size:10px;color:var(--muted);line-height:1.45}
.radio-card input:checked+span{border-color:#93c5fd;background:var(--primarySoft);box-shadow:0 0 0 2px #dbeafe}
.radio-card input:checked+span b{color:var(--primary)}
.viewer-select-area{margin-top:9px;border:1px solid var(--border);border-radius:11px;background:#f8fafc;padding:12px}
.viewer-select-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.viewer-select-head b{font-size:12px}.viewer-select-head small{font-size:10px;color:var(--muted)}
.permission-summary{margin-bottom:12px;padding:13px;border:1px solid #c7d2fe;border-radius:13px;background:#f8faff}
.permission-summary .reader-head{margin-bottom:6px}.permission-list{padding:0}
@media(max-width:700px){
  .visibility-options{grid-template-columns:1fr}
  .viewer-select-head{align-items:flex-start;flex-direction:column}
}

/* v5: scalable user selection modal */
.selected-summary{
  min-height:46px;border:1px solid var(--border);border-radius:11px;background:#fff;padding:9px 10px;
  display:flex;align-items:center;gap:6px;flex-wrap:wrap;
}
.selection-count{margin-right:3px}.selection-count b{font-size:11px;color:var(--primary)}
.selected-person,.selected-more{display:inline-flex;height:27px;align-items:center;padding:0 8px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:10px;font-weight:750}
.selected-more{background:var(--primarySoft);color:var(--primary)}
.selection-empty{font-size:11px;color:var(--muted)}
.selector-open-btn{margin-top:8px;align-self:flex-start}
.selector-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 170px;gap:9px;margin-bottom:10px}
.selector-toolbar .search-wrap{min-width:0;width:100%}
.selector-meta{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 2px;color:var(--muted);font-size:11px}
.selector-page-all{display:flex;align-items:center;gap:5px;cursor:pointer}
.selector-list{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}
.selector-row{min-height:58px;display:flex;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid #eef2f7;cursor:pointer}
.selector-row:last-child{border-bottom:0}.selector-row:hover{background:#f8fafc}
.selector-row input{width:16px;height:16px;accent-color:var(--primary)}
.selector-user-avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--primarySoft);color:var(--primary);font-size:11px;font-weight:900}
.selector-user-main{display:flex;flex-direction:column;gap:2px;flex:1}.selector-user-main b{font-size:12px}.selector-user-main small{font-size:10px;color:var(--muted)}
.selector-state{font-size:10px;color:var(--success);font-weight:850}
.selector-pagination{display:flex;justify-content:center;align-items:center;gap:8px;padding:12px 0}
.selector-page-label{font-size:11px;color:var(--muted);min-width:50px;text-align:center}
.page-btn:disabled{opacity:.35;cursor:not-allowed}
.selector-chosen-wrap{border-top:1px solid var(--border);margin-top:4px;padding-top:14px}
.selector-chosen{display:flex;flex-wrap:wrap;gap:6px;min-height:38px}
.chosen-chip{display:inline-flex;height:29px;align-items:center;gap:5px;padding:0 6px 0 9px;border-radius:999px;background:var(--primarySoft);color:var(--primary);font-size:10px;font-weight:750}
.chosen-chip button{width:20px;height:20px;border:0;border-radius:50%;background:transparent;color:var(--primary);padding:0}
.chosen-chip button:hover{background:#dbeafe}
@media(max-width:700px){
  .selector-toolbar{grid-template-columns:1fr}
  .selector-meta{align-items:flex-start;flex-direction:column}
}

/* v6 report templates + attachments */
.template-notice{display:flex;align-items:flex-start;gap:9px;margin-bottom:8px;padding:10px 12px;border:1px solid #c7d2fe;background:#f8faff;border-radius:10px}
.template-notice>span{font-size:18px}.template-notice div{display:flex;flex-direction:column;gap:3px}.template-notice b{font-size:11px;color:#3730a3}.template-notice small{font-size:10px;color:#64748b;line-height:1.5}
.editor-content table,.document-detail table{width:100%;border-collapse:collapse;margin:10px 0 16px}.editor-content th,.editor-content td,.document-detail th,.document-detail td{border:1px solid #cbd5e1;padding:8px;vertical-align:top}.editor-content th,.document-detail th{background:#f8fafc;font-weight:800}
.attachment-drop{min-height:70px;border:1px dashed #94a3b8;border-radius:12px;background:#fbfdff;display:flex;align-items:center;gap:11px;padding:13px;cursor:pointer;transition:.15s}
.attachment-drop:hover{border-color:var(--primary);background:var(--primarySoft)}.attachment-drop input{position:absolute;opacity:0;pointer-events:none}
.drop-icon{font-size:23px}.attachment-drop>span:last-child{display:flex;flex-direction:column;gap:3px}.attachment-drop b{font-size:12px;color:#334155}.attachment-drop small{font-size:10px;color:var(--muted)}
.pending-files{display:grid;gap:7px;margin-top:8px}.pending-file,.attachment-card{display:flex;align-items:center;gap:10px;border:1px solid var(--border);background:#fff;border-radius:10px;padding:9px 10px}
.file-big-icon{font-size:21px}.file-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.file-info b{font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-info small{font-size:10px;color:var(--muted)}
.file-remove{width:28px;height:28px;border:0;border-radius:8px;background:#f1f5f9;color:#64748b;font-size:16px}.file-remove:hover{background:var(--dangerSoft);color:var(--danger)}
.attachment-section{max-width:900px;margin:0 auto 12px;padding:13px;border:1px solid var(--border);border-radius:13px;background:#fff}.attachment-list{display:grid;gap:7px}.attachment-empty{font-size:11px;color:var(--muted);padding:6px}
@media(max-width:700px){.attachment-card{align-items:flex-start;flex-wrap:wrap}.attachment-card .btn{width:100%}}

/* v7 richer document editor */
.editor-help{display:block;margin-top:-2px;margin-bottom:7px;color:var(--muted);font-size:10px}
.rich-toolbar{
  position:sticky;top:0;z-index:3;display:flex;gap:6px;align-items:center;flex-wrap:wrap;
  padding:7px 8px;background:#f8fafc;border-bottom:1px solid var(--border);
}
.tool-group{display:flex;align-items:center;gap:3px;padding-right:6px;margin-right:1px;border-right:1px solid #e2e8f0}
.tool-group:last-child{border-right:0;padding-right:0}
.rich-toolbar button{
  height:30px;min-width:30px;padding:0 7px;border:1px solid transparent;background:transparent;
  color:#475569;border-radius:7px;font-size:11px;font-weight:700;
}
.rich-toolbar button:hover{background:#fff;border-color:var(--border);color:var(--text)}
.editor-select{
  height:30px;border:1px solid var(--border);background:#fff;border-radius:7px;
  padding:0 24px 0 8px;color:#475569;font-size:11px;outline:0;
}
.editor-size-select{width:58px;padding-right:18px}
.color-tools{gap:5px}
.color-tool{
  position:relative;width:30px;height:30px;border:1px solid transparent;border-radius:7px;
  display:grid;place-items:center;background:transparent;font-weight:900;color:#334155;cursor:pointer;
}
.color-tool:hover{background:#fff;border-color:var(--border)}
.color-tool input{position:absolute;inset:0;opacity:0;cursor:pointer}
.highlight-tool{background:linear-gradient(transparent 58%,#fff3a3 58%)}
.rich-editor-content{min-height:360px;font-size:14px;line-height:1.75}
.rich-editor-content:focus{background:#fff}
.rich-editor-content blockquote,.document-detail blockquote{
  margin:14px 0;padding:10px 14px;border-left:4px solid #93c5fd;background:#f8fafc;color:#475569;
}
.rich-editor-content hr,.document-detail hr{border:0;border-top:1px solid var(--border);margin:20px 0}
.rich-editor-content a,.document-detail a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}
.editor-shell.editor-fullscreen{
  position:fixed!important;inset:12px!important;z-index:5000!important;background:#fff!important;
  border-radius:14px!important;box-shadow:0 25px 80px rgba(15,23,42,.28)!important;
  display:flex!important;flex-direction:column!important;overflow:hidden!important;
}
.editor-shell.editor-fullscreen .rich-toolbar{flex:0 0 auto}
.editor-shell.editor-fullscreen .rich-editor-content{flex:1;min-height:0;overflow:auto;padding:28px 34px}
body.editor-fullscreen-open{overflow:hidden}
@media(max-width:700px){
  .rich-toolbar{gap:4px;padding:6px}
  .tool-group{padding-right:3px}
  .rich-toolbar button{min-width:28px;padding:0 5px}
  .editor-select{max-width:92px}
  .editor-shell.editor-fullscreen{inset:0!important;border-radius:0!important}
  .editor-shell.editor-fullscreen .rich-editor-content{padding:18px}
}

/* v8 electronic approval */
.draft-my-turn-row{background:#fffdf4!important}
.my-turn-dot{display:inline-flex;margin-left:8px;height:23px;align-items:center;padding:0 8px;border-radius:999px;background:#fff7ed;color:#d97706;font-size:10px;font-weight:850}
.draft-flow-help{display:flex;gap:12px;margin-top:16px;padding:15px 17px;border:1px solid #c7d2fe;border-radius:14px;background:#f8faff}
.draft-flow-help>span{font-size:22px}.draft-flow-help strong{font-size:12px;color:#3730a3}.draft-flow-help p{margin:4px 0 0;color:#64748b;font-size:11px;line-height:1.55}
.approval-template-row{display:flex;gap:8px;flex-wrap:wrap}.approval-template-row .input{min-width:230px;flex:1}
.approver-order-list{display:grid;gap:7px;margin-top:8px}
.approver-order-row{min-height:52px;display:flex;align-items:center;gap:9px;padding:7px 9px;border:1px solid var(--border);border-radius:11px;background:#fff}
.approval-step-num{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:var(--primary);color:#fff;font-size:10px;font-weight:900;flex:0 0 auto}
.approval-person{display:flex;flex-direction:column;gap:2px;flex:1}.approval-person b{font-size:12px}.approval-person small{font-size:10px;color:var(--muted)}
.approval-order-actions{display:flex;gap:4px}.approval-order-actions button{width:28px;height:28px;border:1px solid var(--border);background:#fff;border-radius:7px;color:#64748b}.approval-order-actions button:disabled{opacity:.3}.approval-order-actions .danger-mini{color:var(--danger)}
.finance-edit-wrap{overflow:auto;border:1px solid var(--border);border-radius:11px}.finance-edit-wrap .finance-table{margin:0;min-width:650px}
.finance-input{width:100%;height:34px;border:1px solid var(--border);border-radius:7px;padding:0 8px;outline:0}.finance-input:focus{border-color:#93c5fd;box-shadow:0 0 0 2px #dbeafe}
.draft-approval-section{margin-bottom:14px;padding:14px;border:1px solid #c7d2fe;background:#f8faff;border-radius:14px}
.draft-approval-line{display:grid;gap:8px}
.approval-line-item{display:flex;align-items:center;gap:9px;min-height:55px;padding:8px 10px;border:1px solid var(--border);border-radius:11px;background:#fff}
.approval-line-item.approved{border-color:#bbf7d0;background:#f7fff9}.approval-line-item.rejected{border-color:#fecaca;background:#fff8f8}.approval-line-item.current{border-color:#93c5fd;background:#f8fbff}
.approval-line-item.approved .approval-step-num{background:var(--success)}.approval-line-item.rejected .approval-step-num{background:var(--danger)}.approval-line-item.pending .approval-step-num{background:#94a3b8}
.approval-action-meta{display:flex;flex-direction:column;align-items:flex-end;color:#64748b;font-size:10px;max-width:260px}.approval-action-meta small{margin-top:2px;color:#334155}
.draft-finance-detail{max-width:900px;margin:0 auto 12px}
@media(max-width:700px){
  .approval-template-row{flex-direction:column}.approval-template-row .input,.approval-template-row .btn{width:100%}
  .approver-order-row{flex-wrap:wrap}.approval-order-actions{width:100%;justify-content:flex-end;padding-left:67px}
  .approval-line-item{align-items:flex-start;flex-wrap:wrap}.approval-action-meta{width:100%;align-items:flex-start;padding-left:67px}
}

/* v9 comments */
.comment-list{display:grid;gap:8px;margin:9px 0 11px}.comment-item{display:flex;gap:9px;padding:10px 11px;border:1px solid var(--border);border-radius:11px;background:#fff}.comment-avatar{width:30px;height:30px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;background:#ecfeff;color:#0f766e;font-size:11px;font-weight:900}.comment-main{min-width:0;flex:1}.comment-meta{display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:10px;color:var(--muted)}.comment-meta b{font-size:12px;color:var(--text)}.comment-meta time{margin-left:auto}.comment-content{margin-top:5px;font-size:12px;line-height:1.6;color:#334155;white-space:pre-wrap}.comment-empty{padding:18px;text-align:center;color:var(--muted);font-size:11px;border:1px dashed var(--border);border-radius:11px}.comment-compose{display:flex;gap:8px;align-items:flex-end}.comment-compose .input,.comment-compose .textarea{flex:1}.draft-comment-section{max-width:900px;margin:0 auto 12px}
@media(max-width:700px){.comment-compose{flex-direction:column;align-items:stretch}.comment-compose .btn{width:100%}.comment-meta time{width:100%;margin-left:0}}

/* v9 collab restored modules */
.prep-layout{display:grid;grid-template-columns:350px minmax(0,1fr);gap:14px}.prep-event-list{display:grid}.prep-event-item{min-height:70px;border:0;border-bottom:1px solid #eef2f7;background:#fff;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;text-align:left}.prep-event-item:hover{background:#f8fafc}.prep-event-item.active{background:var(--primarySoft)}.prep-event-item span:first-child{display:flex;flex-direction:column;gap:4px}.prep-event-item b{font-size:12px}.prep-event-item small{font-size:10px;color:var(--muted)}.prep-right{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.prep-right em{font-style:normal;color:var(--danger);font-size:9px;font-weight:850}.prep-overall{margin:14px 0}.prep-overall>div:first-child{display:flex;justify-content:space-between;margin-bottom:7px;font-size:11px}.task-stack{display:grid;gap:10px}.prep-task{border:1px solid var(--border);border-radius:12px;padding:12px;background:#fff}.prep-task-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.prep-task-head>div:first-child{display:flex;flex-direction:column;gap:3px}.prep-task-head b{font-size:12px}.prep-task-head small{font-size:10px;color:var(--muted)}.dual-progress{height:10px;background:#eef2f7;border-radius:99px;overflow:hidden;position:relative;margin:11px 0 7px}.dual-progress i,.dual-progress b{position:absolute;left:0;top:0;height:100%;display:block}.dual-progress i{background:#fed7aa;opacity:.7}.dual-progress b{background:var(--success)}.prep-progress-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--muted);font-size:10px}.prep-progress-meta em{font-style:normal;color:var(--danger);font-weight:800}.prep-progress-meta label{margin-left:auto;display:flex;gap:6px;align-items:center}.subtask-list{display:grid;gap:4px;margin-top:8px}.subtask-row{display:flex;justify-content:space-between;padding:7px 9px;border-radius:8px;background:#f8fafc;font-size:10px}.multi-select{height:130px;padding:8px}.slot-list{display:grid;gap:8px}.slot-card{border:1px solid var(--border);border-radius:11px;background:#fff;padding:12px;text-align:left;display:flex;flex-direction:column;gap:4px}.slot-card:hover{border-color:#93c5fd;background:var(--primarySoft)}.slot-card b{font-size:12px}.slot-card span{font-size:10px;color:var(--muted)}.vehicle-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:14px}.vehicle-card{min-height:74px;border:1px solid var(--border);background:#fff;border-radius:13px;padding:13px;display:flex;align-items:center;gap:11px}.vehicle-card>span{font-size:24px}.vehicle-card div{display:flex;flex-direction:column;gap:3px;flex:1}.vehicle-card b{font-size:12px}.vehicle-card small{font-size:10px;color:var(--muted)}.vehicle-card em{font-style:normal;font-size:10px;color:var(--primary);font-weight:800}.ad-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.ad-card{border:1px solid var(--border);background:#fff;border-radius:14px;padding:16px;box-shadow:var(--shadow)}.ad-card-top{display:flex;justify-content:space-between;gap:8px}.ad-card h3{margin:13px 0 7px}.ad-card p{color:#475569;font-size:12px;line-height:1.65}.ad-meta{font-size:10px;color:var(--muted);padding-top:10px;border-top:1px solid #eef2f7}.compact-attachments{margin-top:9px}.compact-attachments .attachment-card{padding:7px}.compact-attachments .btn{display:none}
@media(max-width:1000px){.prep-layout{grid-template-columns:1fr}.ad-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:700px){.ad-grid,.vehicle-summary{grid-template-columns:1fr}.prep-task-head{flex-direction:column}.prep-progress-meta label{margin-left:0;width:100%}.prep-progress-meta input{flex:1}}

/* v9 bible/poll/admin */
.mini-progress{width:140px;height:7px;border-radius:99px;background:#e2e8f0;overflow:hidden;display:inline-block;margin-right:7px}.mini-progress i{display:block;height:100%;background:var(--primary)}.plan-day-sample{display:flex;flex-wrap:wrap;gap:5px;margin-top:15px}.plan-day-sample span{padding:6px 8px;border-radius:8px;background:#f1f5f9;color:#64748b;font-size:10px}.plan-day-sample span.done{background:var(--successSoft);color:var(--success)}.notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.note-card{border:1px solid var(--border);background:#fff;border-radius:14px;padding:15px;box-shadow:var(--shadow)}.note-card-head{display:flex;justify-content:space-between;align-items:center}.note-card time{font-size:10px;color:var(--muted)}.note-card h3{margin:12px 0 7px}.note-card p{min-height:48px;color:#475569;font-size:12px;line-height:1.65}.sharing-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.sharing-card{border:1px solid var(--border);background:#fff;border-radius:14px;padding:16px;box-shadow:var(--shadow);cursor:pointer}.sharing-card:hover{transform:translateY(-2px);border-color:#c4b5fd}.sharing-author{display:flex;gap:8px;align-items:center;margin-bottom:12px}.sharing-author>div{display:flex;flex-direction:column}.sharing-author b{font-size:11px}.sharing-author small{font-size:9px;color:var(--muted)}.sharing-card h3{margin:10px 0 6px}.sharing-card p{font-size:12px;line-height:1.65;color:#475569}.sharing-foot{display:flex;justify-content:space-between;padding-top:10px;border-top:1px solid #eef2f7;color:var(--muted);font-size:10px}.sharing-detail-content{padding:18px;border:1px solid var(--border);border-radius:13px;margin-bottom:14px}.sharing-detail-content p{margin:12px 0 0;line-height:1.8;white-space:pre-wrap}.poll-list{display:grid;gap:12px}.poll-card{border:1px solid var(--border);background:#fff;border-radius:14px;padding:17px;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:var(--shadow)}.poll-card h3{margin:9px 0 5px}.poll-card p{margin:0;color:var(--muted);font-size:11px}.rank-choice{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:10px;padding:12px;border-radius:12px;margin-bottom:9px}.rank-choice.gold{background:#fffbeb}.rank-choice.silver{background:#f8fafc}.rank-choice.bronze{background:#fff7ed}.poll-result-row{display:grid;grid-template-columns:28px 130px 1fr 45px;align-items:center;gap:8px;margin:11px 0}.poll-result-row>span{width:25px;height:25px;border-radius:50%;background:var(--primarySoft);color:var(--primary);display:grid;place-items:center;font-size:10px;font-weight:900}.poll-result-row b{font-size:11px}.poll-result-row em{font-style:normal;font-size:10px;text-align:right}.poll-bar{height:9px;background:#e2e8f0;border-radius:99px;overflow:hidden}.poll-bar i{display:block;height:100%;background:var(--primary)}.stats-bar-row{display:grid;grid-template-columns:90px 1fr 28px;gap:8px;align-items:center;margin:12px 0;font-size:11px}.stats-bar-row>div{height:9px;border-radius:99px;background:#e2e8f0;overflow:hidden}.stats-bar-row i{display:block;height:100%;background:var(--primary)}.settings-tabs{display:flex;gap:5px;overflow:auto;margin-bottom:12px}.settings-tab-btn{height:38px;white-space:nowrap;border:1px solid var(--border);background:#fff;border-radius:10px;padding:0 13px;color:#64748b;font-size:11px;font-weight:800}.settings-tab-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.settings-tab-panel{margin-bottom:12px}.toggle-line{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:750;color:#334155}.toggle-line input{width:18px;height:18px;accent-color:var(--primary)}
@media(max-width:850px){.notes-grid{grid-template-columns:repeat(2,1fr)}.sharing-grid{grid-template-columns:1fr}}@media(max-width:600px){.notes-grid{grid-template-columns:1fr}.poll-card{align-items:flex-start;flex-direction:column}.poll-card .page-actions{width:100%}.poll-result-row{grid-template-columns:28px 90px 1fr 38px}}

/* v9 finishing CRUD */
.home-notice{display:flex;align-items:flex-start;gap:10px;margin:-6px 0 18px;padding:12px 14px;border:1px solid #bfdbfe;background:#f8fbff;border-radius:12px}.home-notice>span{font-size:19px}.home-notice b{font-size:11px;color:var(--primary)}.home-notice p{margin:3px 0 0;color:#475569;font-size:11px}.home-extra-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:20px}.home-extra-actions .quick-card{min-height:86px;display:grid;grid-template-columns:38px 1fr;grid-template-rows:1fr 1fr;column-gap:10px;align-items:center;text-align:left}.home-extra-actions .quick-icon{grid-row:1/3}.home-extra-actions strong,.home-extra-actions span:last-child{align-self:end}.home-extra-actions span:last-child{align-self:start}
@media(max-width:700px){.home-extra-actions{grid-template-columns:1fr}}

/* v10 login / auth */
.app-locked .app-header,.app-locked .page-shell,.app-locked .mobile-nav-panel{display:none!important}
.login-screen{position:fixed;inset:0;z-index:10000;background:linear-gradient(135deg,#eef4ff,#f8fafc 55%,#eef2ff);display:grid;place-items:center;padding:20px}
.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--border);border-radius:20px;box-shadow:0 22px 60px rgba(15,23,42,.14);padding:30px}
.login-brand{display:flex;align-items:center;gap:11px;margin-bottom:25px}.login-brand>div{display:flex;flex-direction:column}.login-brand strong{font-size:21px}.login-brand small{font-size:11px;color:var(--muted);margin-top:2px}.login-brand-mark{width:38px;height:38px}
.login-card h1{font-size:27px;margin-bottom:6px}.login-sub{color:var(--muted);margin-bottom:23px}
.login-field{display:flex;flex-direction:column;gap:7px;margin:13px 0}.login-field span{font-size:12px;font-weight:800}.login-field input{height:46px;border:1px solid var(--border);border-radius:11px;padding:0 12px;outline:0}.login-field input:focus{border-color:#93c5fd;box-shadow:0 0 0 3px #dbeafe}
.login-options{display:flex;gap:18px;flex-wrap:wrap;margin:12px 0;color:#475569;font-size:12px}.login-options label{display:flex;gap:6px;align-items:center}
.login-error{padding:10px 11px;border-radius:9px;background:var(--dangerSoft);color:var(--danger);font-size:12px}.login-submit{width:100%;height:46px;margin-top:14px}
.demo-account-box{margin-top:20px;padding:13px;border-radius:12px;background:#f8fafc;border:1px solid var(--border);display:flex;flex-direction:column;gap:5px;font-size:11px;color:#475569}.demo-account-box b{color:var(--text)}.demo-account-box code{background:#e2e8f0;padding:1px 4px;border-radius:4px}
.desktop-logout{white-space:nowrap}
.quick-card:disabled,.quick-card-disabled{opacity:.48;cursor:not-allowed;transform:none!important}

/* prominent home notice */
.home-notice-focus{display:flex;align-items:center;gap:16px;padding:18px 20px;border-radius:16px;background:linear-gradient(105deg,#fff7ed,#fff 55%);border:1px solid #fed7aa;box-shadow:0 5px 18px rgba(194,65,12,.07);margin-bottom:18px}
.notice-icon{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:#ffedd5;font-size:23px}
.notice-main{flex:1;min-width:0}.notice-main>span{display:block;font-size:11px;font-weight:900;color:#c2410c;letter-spacing:.06em}.notice-main strong{display:block;font-size:17px;margin:4px 0;color:#7c2d12;line-height:1.45}.notice-main small{color:#9a3412;font-size:10px}

/* calendar views */
.calendar-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,.55fr);gap:16px}
.calendar-feature .day{min-height:118px}.day-events{display:grid;gap:5px;margin-top:7px}
.calendar-feature .cal-event{width:100%;height:auto;min-height:25px;border:0;text-align:left;padding:5px 6px;white-space:normal;line-height:1.25}
.visit-cal-event{background:#f0fdf4!important;color:#15803d!important}.car-cal-event{background:#fff7ed!important;color:#c2410c!important}
.calendar-side-list{display:grid;gap:8px;padding:12px}.side-event{border:1px solid var(--border);background:#fff;border-radius:11px;padding:10px;text-align:left;display:flex;flex-direction:column;gap:3px}.side-event:hover{border-color:#93c5fd;background:#f8fbff}.side-event time{font-size:10px;color:var(--primary);font-weight:800}.side-event strong{font-size:12px}.side-event small{font-size:10px;color:var(--muted)}
.ad-deadline-soon{border-color:#fecaca!important;box-shadow:0 5px 18px rgba(220,38,38,.07)!important}.deadline-warning{margin-top:11px;padding:9px 10px;border-radius:9px;background:var(--dangerSoft);color:var(--danger);font-size:10px;font-weight:750}

/* Bible text/calendar/admin */
.today-word-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.today-word-heading h2{margin:8px 0 0}
.bible-text-box{margin:16px 0;padding:18px;border:1px solid #dbeafe;background:#f8fbff;border-radius:13px;display:grid;gap:10px;line-height:1.72}.bible-text-box p{margin:0;display:flex;gap:10px}.bible-text-box p span{flex:0 0 24px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e0e7ff;color:#4338ca;font-size:10px;font-weight:850}
.bible-demo-note{padding:9px 10px;margin:-4px 0 13px;border-radius:9px;background:#f8fafc;color:#64748b;font-size:10px}
.bible-day-click{border:0;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:5px}.bible-day-click span{font-size:9px;line-height:1.25;color:#475569}.bible-day-click em{font-size:9px;color:var(--success);font-style:normal;font-weight:800}
.bible-day-click:hover{background:#eff6ff}.bible-day-click.read{background:#f0fdf4}
.bible-celebration{position:fixed;inset:0;z-index:20000;pointer-events:none;display:none}.bible-celebration.show{display:block}.celebration-ribbon{position:absolute;top:22px;left:50%;transform:translateX(-50%);background:linear-gradient(90deg,#fde68a,#fff7ed,#fde68a);padding:11px 18px;border-radius:999px;font-weight:900;box-shadow:0 10px 32px rgba(0,0,0,.13);animation:celebrateDrop 1.7s ease forwards}.celebration-sky{position:absolute;inset:0;overflow:hidden}.celebration-spark{position:absolute;width:8px;height:8px;border-radius:2px;animation:celebrateSpark 1.2s ease-out forwards}
@keyframes celebrateDrop{0%{opacity:0;transform:translate(-50%,-28px)}25%,75%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-6px)}}@keyframes celebrateSpark{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(540deg)}}
.top-progress-row{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid #eef2f7}.top-progress-row>span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--primarySoft);color:var(--primary);font-size:10px;font-weight:900}.top-progress-row>div{flex:1;display:flex;flex-direction:column}.top-progress-row b{font-size:11px}.top-progress-row small{font-size:9px;color:var(--muted)}.top-progress-row strong{color:var(--primary)}

/* user/stats */
.user-full-table{min-width:1250px}.phone-link{color:var(--primary);text-decoration:none}
.stats-three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stats-two-col-wide{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.stats-tabs{margin-bottom:14px}
.poll-badge-row{display:flex;gap:6px;margin-bottom:8px}.poll-inactive{opacity:.72}.poll-choice-list{display:grid;gap:8px}.poll-choice-row{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:11px;padding:12px;cursor:pointer}.poll-choice-row:hover{background:#f8fafc}.poll-choice-row input{width:17px;height:17px;accent-color:var(--primary)}.poll-options-box{margin-top:14px;padding:12px;border:1px solid var(--border);border-radius:11px;background:#f8fafc;display:grid;gap:10px}.poll-options-box small{color:var(--muted);font-size:10px}
@media(max-width:1050px){.calendar-layout{grid-template-columns:1fr}.stats-three-col{grid-template-columns:1fr}.stats-two-col-wide{grid-template-columns:1fr}}
@media(max-width:700px){.desktop-logout{display:none}.home-notice-focus{align-items:flex-start;flex-wrap:wrap}.home-notice-focus .btn{width:100%}.today-word-heading{flex-direction:column}.today-word-heading .btn{width:100%}}

/* v11 original ITDA / church logos + login transition */
.original-itda-brand{
  min-width:58px;height:44px;display:flex!important;align-items:center;justify-content:flex-start!important;
  padding:0 4px!important;
}
.original-itda-brand img{width:50px;height:50px;object-fit:contain;display:block}
.mobile-nav-logo{display:flex;justify-content:center;align-items:center;padding:14px 10px 10px;border-bottom:1px solid var(--border)}
.mobile-nav-logo img{width:64px;height:64px;object-fit:contain}

.login-screen{
  background:linear-gradient(135deg,#e0eafc,#cfdef3)!important;
  padding:30px!important;
}
.login-container{
  width:min(420px,100%)!important;
  padding:42px 40px 34px!important;
  text-align:center;
  transition:transform .35s cubic-bezier(.22,.61,.36,1),opacity .35s ease,box-shadow .3s ease!important;
}
.login-container:hover{transform:translateY(-2px);box-shadow:0 16px 32px rgba(0,0,0,.14)}
.login-church-logo{display:flex;justify-content:center;margin-bottom:17px}
.login-church-logo img{width:210px;max-width:82%;height:auto;object-fit:contain}
.login-system-title{display:flex;align-items:center;justify-content:center;gap:5px;flex-wrap:wrap;margin-bottom:10px}
.login-system-title img{width:76px;height:76px;object-fit:contain}
.login-system-title strong{font-size:21px;color:#333;font-weight:800;letter-spacing:-.4px}
.login-sub{margin:0 0 24px!important;font-size:12px!important}

.original-input-wrapper{position:relative;margin-bottom:29px;width:100%;text-align:left}
.original-input-wrapper input{
  width:100%;height:48px;padding:0 12px;font-size:15px;line-height:48px;border:1.5px solid #cbd5e1;border-radius:10px;background:#fff;box-sizing:border-box;
  transition:border-color .3s,box-shadow .3s;
}
.original-input-wrapper input:focus{border-color:#007bff;box-shadow:0 0 6px rgba(0,123,255,.15);outline:none}
.original-input-wrapper label{
  position:absolute;left:16px;top:0;height:48px;display:flex;align-items:center;color:#94a3b8;font-size:15px;font-weight:500;pointer-events:none;z-index:2;
  transition:top .45s cubic-bezier(.23,1,.32,1),font-size .45s cubic-bezier(.23,1,.32,1),color .34s cubic-bezier(.23,1,.32,1),font-weight .34s cubic-bezier(.23,1,.32,1),left .34s cubic-bezier(.23,1,.32,1),height .34s cubic-bezier(.23,1,.32,1),background .34s cubic-bezier(.23,1,.32,1),padding .34s cubic-bezier(.23,1,.32,1);
}
.original-input-wrapper input:focus+label,
.original-input-wrapper input:not(:placeholder-shown)+label{
  top:-7px;left:12px;height:auto;font-size:12px;color:#007bff;font-weight:800;background:#fff;padding:0 4px;display:inline-block;
}
.input-hint{color:#888;font-size:11px;margin:5px 0 0 4px;text-align:left}
.login-options{justify-content:flex-start!important;margin:4px 0 5px!important}
.login-submit{position:relative;overflow:hidden;margin-top:18px!important;background:#007bff!important}
.login-submit:hover{background:#0056b3!important;transform:translateY(-1px)}
.login-btn-loader{
  display:none;width:18px;height:18px;border:2px solid rgba(255,255,255,.45);border-top-color:#fff;border-radius:50%;animation:loginSpin .7s linear infinite;
}
.login-submit.loading .login-btn-text{display:none}
.login-submit.loading .login-btn-loader{display:inline-block}
.login-submit.loading{pointer-events:none}
.login-footer{margin-top:16px;font-size:11px;color:#aaa}

.login-shake{animation:loginShake .38s ease}
.login-card-success{animation:loginCardOut .65s cubic-bezier(.32,.72,0,1) forwards}
.login-success-overlay{
  position:fixed;inset:0;z-index:10020;display:flex;flex-direction:column;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(224,234,252,.98),rgba(207,222,243,.98));
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .24s ease,visibility .24s;
}
.login-success-overlay.show{opacity:1;visibility:visible}
.login-success-ring{position:relative;width:126px;height:126px;display:grid;place-items:center;margin-bottom:18px}
.login-success-ring img{width:92px;height:92px;object-fit:contain;position:relative;z-index:2;animation:loginLogoPop .75s cubic-bezier(.18,.89,.32,1.28) both}
.login-success-ring:before,.login-success-ring:after,.login-success-ring-wave{
  content:"";position:absolute;inset:12px;border:2px solid rgba(0,123,255,.34);border-radius:50%;animation:loginRing 1.25s ease-out infinite;
}
.login-success-ring:after{animation-delay:.36s}
.login-success-ring-wave{animation-delay:.72s}
.login-success-overlay strong{font-size:22px;color:#1e293b;animation:loginTextUp .55s ease .2s both}
.login-success-overlay small{margin-top:5px;color:#64748b;animation:loginTextUp .55s ease .32s both}
.app-enter{animation:appEnter .62s cubic-bezier(.22,.61,.36,1) both}

@keyframes loginSpin{to{transform:rotate(360deg)}}
@keyframes loginShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
@keyframes loginCardOut{0%{opacity:1;transform:translateY(-2px) scale(1)}50%{opacity:.72;transform:translateY(-8px) scale(.985)}100%{opacity:0;transform:translateY(-14px) scale(.96)}}
@keyframes loginLogoPop{0%{opacity:0;transform:scale(.42) rotate(-8deg)}65%{opacity:1;transform:scale(1.08) rotate(2deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes loginRing{0%{opacity:.72;transform:scale(.68)}100%{opacity:0;transform:scale(1.5)}}
@keyframes loginTextUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes appEnter{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:none}}

@media(max-width:480px){
  .login-screen{padding:18px!important}
  .login-container{padding:34px 20px 28px!important}
  .login-church-logo img{width:190px}
  .login-system-title img{width:68px;height:68px}
  .login-system-title strong{font-size:19px}
}
@media(prefers-reduced-motion:reduce){
  .login-card-success,.login-success-ring img,.login-success-ring:before,.login-success-ring:after,.login-success-ring-wave,.login-success-overlay strong,.login-success-overlay small,.app-enter{animation:none!important}
}

/* v12 original ITDA post-login intro */
.original-login-intro{
  position:fixed!important;inset:0!important;z-index:10020!important;
  background:#070a12!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  opacity:0;visibility:hidden;pointer-events:none;transition:none!important;
}
.original-login-intro.show{
  opacity:1;visibility:visible;
  animation:originalIntroFade 1.55s ease forwards;
}
.original-login-intro h1{
  margin:0;color:rgba(255,255,255,.95);font-size:1.7rem;letter-spacing:.6px;
  text-align:center;padding:0 18px;
  animation:originalIntroZoom 1.05s ease forwards;
}
@keyframes originalIntroZoom{
  0%{transform:scale(.86);opacity:0;filter:blur(10px)}
  55%{opacity:1;filter:blur(0)}
  100%{transform:scale(1);opacity:1}
}
@keyframes originalIntroFade{
  0%,70%{opacity:1}
  100%{opacity:0;visibility:hidden}
}

/* notice modal */
.notice-modal-card{display:flex;align-items:flex-start;gap:14px;padding:17px;border:1px solid #fed7aa;border-radius:14px;background:linear-gradient(120deg,#fff7ed,#fff)}
.notice-modal-icon{width:46px;height:46px;flex:0 0 auto;border-radius:13px;display:grid;place-items:center;background:#ffedd5;font-size:23px}
.notice-modal-card h3{font-size:17px;margin:8px 0 10px;color:#7c2d12}
.notice-modal-content{font-size:13px;line-height:1.8;color:#475569}

/* v13 layout / permission / linked workflows */
.range-sep{font-size:11px;color:var(--muted)}
.report-search-toolbar .toolbar-left{flex-wrap:wrap}
.clickable-stats .stat-card{border:1px solid var(--border);text-align:left;cursor:pointer;font-family:inherit}
.stat-filter-card.active{border-color:#93c5fd;box-shadow:0 0 0 2px #dbeafe;background:#f8fbff}
.stats-export-line{justify-content:flex-end;margin-bottom:10px}
.permission-group-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px}
.permission-group-list{display:grid;align-content:start;gap:7px}
.permission-group-btn{border:1px solid var(--border);background:#fff;border-radius:10px;padding:11px;text-align:left;display:flex;flex-direction:column;gap:3px}
.permission-group-btn.active{border-color:#93c5fd;background:#eff6ff}
.permission-group-btn b{font-size:12px}.permission-group-btn small{font-size:10px;color:var(--muted)}
.permission-group-editor{border-left:1px solid var(--border);padding-left:16px}
.menu-permission-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:10px}
.permission-check{border:1px solid var(--border);border-radius:9px;padding:10px;display:flex;gap:7px;align-items:center;background:#fff}
.permission-check input{accent-color:var(--primary)}
.login-summary-section{border:1px solid var(--border);border-radius:13px;padding:12px;margin-bottom:10px}
.login-summary-section h3{display:flex;align-items:center;gap:7px;font-size:13px;margin-bottom:8px}
.login-summary-section h3 em{font-style:normal;background:var(--primary);color:#fff;border-radius:999px;padding:1px 7px;font-size:10px}
.login-summary-item{width:100%;border:0;border-top:1px solid #eef2f7;background:#fff;padding:9px 3px;text-align:left;display:flex;justify-content:space-between;gap:10px}
.login-summary-item span{font-size:11px;font-weight:750}.login-summary-item small{font-size:9px;color:var(--muted)}
.birthday-summary{border-color:#fde68a;background:#fffbeb}.birthday-summary>p{font-size:11px;color:#92400e;margin-bottom:8px}
.birthday-people{display:flex;flex-wrap:wrap;gap:6px}.birthday-people span{font-size:10px;padding:6px 8px;border-radius:999px;background:#fef3c7;color:#92400e}
.prep-linked-bar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.linked-count-btn{border:1px solid var(--border);background:#fff;border-radius:10px;padding:9px 11px;font-size:11px}
.linked-count-btn b{color:var(--primary)}
.linked-doc-list{display:grid;gap:8px}
.linked-doc-item{border:1px solid var(--border);background:#fff;border-radius:11px;padding:11px 12px;display:flex;align-items:center;justify-content:space-between;text-align:left}
.linked-doc-item:hover{border-color:#93c5fd;background:#f8fbff}
.linked-doc-item>div{display:flex;flex-direction:column}.linked-doc-item b{font-size:12px}.linked-doc-item small{font-size:10px;color:var(--muted);margin-top:3px}.linked-doc-item>span{color:var(--primary);font-size:11px}
.settings-tabs{overflow-x:auto}
.settings-tabs::-webkit-scrollbar{height:4px}
.user-full-table{min-width:1120px}
@media(max-width:800px){
  .permission-group-layout{grid-template-columns:1fr}
  .permission-group-editor{border-left:0;border-top:1px solid var(--border);padding-left:0;padding-top:14px}
  .menu-permission-grid{grid-template-columns:repeat(2,1fr)}
  .report-search-toolbar .toolbar-left{width:100%}
  .report-search-toolbar .control{flex:1;min-width:135px}
}

/* v14 */
.inline-icon-toolbar{display:flex;flex-wrap:wrap;gap:6px;margin:7px 0}
.inline-icon-toolbar button{width:34px;height:34px;border:1px solid var(--border);background:#fff;border-radius:8px;font-size:17px}
.inline-icon-toolbar button:hover{border-color:#93c5fd;background:#eff6ff}
.auto-save-hint{margin-top:7px;color:var(--success);font-size:10px}
.permission-tree{display:grid;gap:9px;margin-top:12px}
.permission-tree-group{border:1px solid var(--border);border-radius:11px;background:#fff;overflow:hidden}
.permission-main{display:flex;align-items:center;gap:8px;padding:11px 12px;background:#f8fafc;font-size:12px;font-weight:850}
.permission-main input,.permission-child input{accent-color:var(--primary)}
.permission-children{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;border-top:1px solid #eef2f7}
.permission-child{display:flex;align-items:center;gap:7px;padding:10px 12px;font-size:11px;border-right:1px solid #eef2f7;border-bottom:1px solid #eef2f7}
.permission-child:nth-child(even){border-right:0}
.permission-group-actions{margin-top:12px}
.bible-note-compose{margin-top:12px}
.bible-note-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px;flex-wrap:wrap}
@media(max-width:650px){.permission-children{grid-template-columns:1fr}.permission-child{border-right:0}.bible-note-actions .btn{width:100%}}

/* v15 prep management */
.assignee-filter-grid{display:grid;grid-template-columns:150px minmax(0,1fr);gap:7px;margin-bottom:7px}
#prepLeader,#prepTaskAssignee,#prepSubTaskAssignee{width:100%;min-height:118px;padding:4px 6px}
#prepLeader option,#prepTaskAssignee option,#prepSubTaskAssignee option{padding:7px 8px;border-radius:6px}
.selected-assignee-preview{min-height:42px;margin-top:7px;border:1px solid var(--border);border-radius:9px;background:#f8fafc;padding:7px 9px;display:flex;align-items:center;gap:8px}
.selected-assignee-preview>span:last-child{display:flex;flex-direction:column}.selected-assignee-preview b{font-size:11px}.selected-assignee-preview small{font-size:9px;color:var(--muted)}
.progress-input-row{display:grid;grid-template-columns:minmax(0,1fr) 72px 15px;gap:7px;align-items:center}.progress-number{text-align:right}
.prep-summary-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(120px,.55fr) minmax(120px,.55fr);gap:10px;margin:14px 0}
.prep-summary-main,.prep-summary-mini{border:1px solid var(--border);background:#fff;border-radius:12px;padding:12px}
.prep-summary-main>span,.prep-summary-mini>span{display:block;font-size:10px;color:var(--muted);font-weight:700}.prep-summary-main>strong{display:block;font-size:28px;margin:3px 0 8px}.prep-summary-main small{display:block;margin-top:6px;color:var(--muted);font-size:9px}.prep-summary-main .progress{height:8px}.prep-summary-main .progress i{display:block;height:100%;border-radius:999px;background:var(--primary)}
.prep-summary-mini{display:flex;flex-direction:column;justify-content:center}.prep-summary-mini b{font-size:22px;margin-top:5px}.prep-summary-mini.danger{border-color:#fecaca;background:#fff8f8}.prep-summary-mini.danger b{color:var(--danger)}
.task-progress-edit{display:grid;grid-template-columns:75px minmax(0,1fr) 45px;gap:8px;align-items:center;margin-top:9px;padding:8px 10px;border-radius:9px;background:#f8fafc}.task-progress-edit label{font-size:10px;font-weight:800}.task-progress-edit b{text-align:right;color:var(--primary);font-size:11px}
.task-auto-progress-note{margin-top:8px;padding:7px 9px;border-radius:8px;background:#eff6ff;color:#1d4ed8;font-size:9px}
.subtask-progress-row{align-items:center!important;gap:12px;padding:9px 8px!important}.subtask-main{display:flex;flex-direction:column;gap:2px;min-width:180px;flex:1}.subtask-main span{font-size:10px}.subtask-main small{font-size:8px;color:var(--muted)}
.subtask-progress-control{display:grid;grid-template-columns:minmax(100px,1fr) 40px 34px 42px;gap:6px;align-items:center;min-width:300px}.subtask-progress-control b{font-size:10px;text-align:right;color:var(--primary)}.subtask-progress-control em{font-style:normal;font-size:8px;color:var(--danger);font-weight:800}.mini-edit-btn{height:26px;border:1px solid var(--border);border-radius:6px;background:#fff;font-size:9px}
@media(max-width:700px){
  .assignee-filter-grid{grid-template-columns:1fr}
  .prep-summary-grid{grid-template-columns:1fr 1fr}.prep-summary-main{grid-column:1/-1}
  .subtask-progress-row{display:block!important}.subtask-progress-control{min-width:0;margin-top:7px;grid-template-columns:minmax(90px,1fr) 40px 34px 42px}
}

/* v16 event prep visibility */
.prep-shortcut-btn{white-space:nowrap}
#view-prep .page-head h1:after{content:"";display:inline-block;width:7px;height:7px;margin-left:8px;border-radius:50%;background:#2563eb;vertical-align:middle}

/* v17 */
#view-prep .page-head .eyebrow{color:var(--primary)}

/* v18 public home */
.login-close-btn{position:absolute;right:13px;top:13px;width:34px;height:34px;border:0;background:#f1f5f9;border-radius:50%;font-size:15px;cursor:pointer;z-index:5}
.login-container{position:relative}
.header-member-actions{display:flex;align-items:center;gap:8px}
.public-home-note{margin-bottom:9px;font-size:10px;color:#64748b}
.public-login-hint{margin-top:14px;padding:10px 12px;border-radius:9px;background:#eff6ff;color:#1d4ed8;font-size:11px;font-weight:700}
body.login-overlay-open{overflow:hidden}
.app-locked .app-header,.app-locked .page-shell,.app-locked .mobile-nav-panel{display:block!important}
.prep-summary-login-item>span{display:grid;gap:4px;flex:1}.prep-summary-login-item>span>b{font-size:11px}.prep-summary-login-item>span>small{font-size:9px;color:var(--muted)}
.prep-summary-login-item i{display:block;height:5px;border-radius:999px;background:#e2e8f0;overflow:hidden}.prep-summary-login-item i u{display:block;height:100%;background:var(--primary);border-radius:999px;text-decoration:none}.prep-summary-login-item>strong{color:var(--primary);font-size:12px}
@media(max-width:700px){.header-member-actions .profile-btn{display:none}}

/* v19 hard guard against mobile menu leakage */
body:not(.login-overlay-open) #loginScreen.hidden{display:none!important}
.mobile-nav-panel{display:none!important}
@media(max-width:1050px){
  .mobile-nav-panel{display:none!important}
  .mobile-nav-panel.open{display:block!important;position:fixed;left:12px;right:12px;top:70px;z-index:80;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 16px 40px rgba(15,23,42,.18);padding:8px}
}
@media(min-width:1051px){
  .mobile-nav-panel,.mobile-nav-panel.open{display:none!important}
}

/* v20 event images */
.event-image-preview-wrap{margin-top:9px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#f8fafc}
.event-image-preview-wrap img{display:block;width:100%;max-height:300px;object-fit:cover}
.event-image-preview-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 11px}
.event-image-preview-actions span{font-size:10px;color:var(--muted)}
.event-cover.has-event-image{background-color:#1d4ed8!important;background-repeat:no-repeat!important}
.event-cover.has-event-image .cover-title{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.65)}
.event-cover.has-event-image .event-kind{background:rgba(255,255,255,.9);color:#1e3a8a}
.hero-card.hero-has-image{background-size:cover!important;background-position:center!important;background-repeat:no-repeat!important}
.event-detail-image{width:100%;border-radius:15px;overflow:hidden;margin-bottom:12px;background:#0f172a}
.event-detail-image img{display:block;width:100%;max-height:520px;object-fit:contain;margin:auto}
.detail-hero.detail-hero-with-image{padding-top:20px}
@media(max-width:700px){
  .event-image-preview-actions{align-items:flex-start;flex-direction:column}
  .event-detail-image img{max-height:360px}
}

/* v21 delegated settings tree */
.permission-node{border:0!important}
.permission-node .permission-children{border-top:1px solid #eef2f7}
.permission-depth-2{display:grid!important;grid-template-columns:1fr!important;margin-left:18px;border-left:2px solid #e2e8f0}
.permission-level-2{background:#fbfdff;padding-left:18px!important}
.permission-level-2 span:before{content:"↳ ";color:#94a3b8}

/* v22 single permission-group model */
#settings-role .data-table td:last-child .control{min-width:190px}

/* v23 read timestamps */
.reader-chip-with-time{min-width:210px;align-items:flex-start}
.reader-chip-with-time .reader-info{display:flex;flex-direction:column;gap:1px}
.reader-chip-with-time time{display:block;margin-top:4px;font-size:9px;color:#475569;font-variant-numeric:tabular-nums}
.reader-chip-with-time time em{font-style:normal;font-weight:800;color:#2563eb;margin-left:3px}

/* v24 compact readership */
.reader-legend{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:-1px;margin-right:2px}
.reader-legend.read{background:#22c55e}
.reader-legend.unread{background:#cbd5e1}

.reader-status-card{
  min-width:190px;display:inline-flex;align-items:flex-start;gap:8px;
  border:1px solid var(--border);border-radius:10px;padding:8px 10px;margin:3px;background:#fff
}
.reader-status-card.is-read{border-color:#86efac;background:#f0fdf4}
.reader-status-card.is-unread{border-color:#e2e8f0;background:#f8fafc;opacity:.86}
.reader-status-card .reader-info{display:flex;flex-direction:column;gap:1px}
.reader-status-card .reader-state-text{margin-top:3px;font-size:9px;font-weight:800}
.reader-status-card.is-read .reader-state-text{color:#15803d}
.reader-status-card.is-unread .reader-state-text{color:#94a3b8}
.reader-status-card time{font-size:9px;color:#475569;font-variant-numeric:tabular-nums;margin-top:1px}
.reader-status-card time em{font-style:normal;color:#2563eb;font-weight:800}

.my-read-badge{
  display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;
  font-size:9px;font-weight:800;white-space:nowrap
}
.my-read-badge.read{background:#dcfce7;color:#166534}
.my-read-badge.unread{background:#fee2e2;color:#b91c1c}
.my-read-badge.excluded{background:#e2e8f0;color:#475569}
.document-unread-row td:first-child{box-shadow:inset 3px 0 0 #ef4444}

/* v25 */
.permission-summary.hidden{display:none!important}


/* ===== v26 MOBILE DEMO ===== */
.event-image-file-row{
  margin-top:8px;padding:10px 11px;border:1px solid var(--border);border-radius:10px;
  background:#f8fafc;display:flex;align-items:center;justify-content:space-between;gap:10px
}
.event-image-file-row>span{min-width:0;font-size:10px;color:#475569;overflow-wrap:anywhere}
.event-image-file-row b{font-weight:800}
.event-image-file-actions{display:flex;gap:6px;flex:0 0 auto}

@media (hover:none){
  .btn:hover,.event-card:hover,.quick-card:hover{transform:none!important}
}

@media(max-width:900px){
  .permission-layout{grid-template-columns:1fr!important}
  .permission-group-list{display:flex!important;overflow-x:auto;gap:7px;padding-bottom:5px;scrollbar-width:thin}
  .permission-group-list .permission-group-btn{min-width:150px;flex:0 0 auto}
}

@media(max-width:760px){
  html,body{max-width:100%;overflow-x:hidden}
  body{font-size:13px}
  .topbar-inner,.subbar-inner,.page-shell{padding-left:12px!important;padding-right:12px!important}
  .topbar-inner{gap:8px}
  .brand{min-width:46px}
  .brand img{max-width:46px}
  .main-nav{display:none!important}
  .mobile-menu{display:grid!important}
  .header-actions{margin-left:auto;gap:6px}
  .header-member-actions .profile-btn{display:none!important}
  .desktop-logout{display:none!important}

  .mobile-nav-panel.open{
    display:block!important;position:fixed!important;left:8px!important;right:8px!important;top:62px!important;
    max-height:calc(100dvh - 74px);overflow-y:auto;z-index:2000!important;border-radius:14px!important;
    box-shadow:0 18px 48px rgba(15,23,42,.22)!important
  }
  .mobile-nav-panel button{min-height:44px;font-size:13px}

  .subbar{position:sticky;top:58px;z-index:60}
  .subbar-inner{overflow-x:auto;white-space:nowrap;scrollbar-width:none}
  .subbar-inner::-webkit-scrollbar{display:none}

  .page-shell{padding-top:16px!important;padding-bottom:32px!important}
  .page-head{gap:10px!important;margin-bottom:14px}
  .page-head h1{font-size:22px}
  .page-head .page-desc{font-size:11px}
  .page-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:7px}
  .page-actions>*{min-width:0}
  .page-actions form{display:contents}
  .page-actions .btn{width:100%;min-width:0}

  .hero-grid{grid-template-columns:1fr!important;gap:10px}
  .hero-main{min-height:220px!important;padding:20px 17px!important;background-position:center!important}
  .hero-main h2{font-size:23px!important}
  .hero-side{grid-template-columns:1fr 1fr!important;gap:8px}
  .quick-card{min-height:88px;padding:13px}

  .events-grid,.ad-grid,.cards-grid{grid-template-columns:1fr!important}
  .event-cover{height:155px!important}
  .event-body{padding:13px!important}

  .stats-grid{grid-template-columns:1fr 1fr!important;gap:8px}
  .stat-card{padding:13px!important}
  .stat-card strong{font-size:22px!important}

  .toolbar,.toolbar-left,.toolbar-right{align-items:stretch!important}
  .toolbar-left,.toolbar-right{display:grid!important;grid-template-columns:1fr!important;width:100%}
  .toolbar-left>.control,.toolbar-left>.input,.toolbar-left>.search-wrap,.toolbar-left>.btn,.toolbar-left>button,
  .toolbar-right>.control,.toolbar-right>.input,.toolbar-right>.btn,.toolbar-right>button{width:100%;max-width:none;min-width:0}
  .range-sep{display:none}

  .form-grid{grid-template-columns:1fr!important;gap:11px}
  .field.full{grid-column:auto!important}
  .input,.control,.textarea{width:100%!important;max-width:100%}
  .textarea{min-height:130px}

  .table-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
  .data-table{min-width:700px}
  .data-table th,.data-table td{padding:9px 10px}

  .modal-backdrop{padding:6px!important;align-items:flex-end!important}
  .modal,.modal-sm,.modal-md,.modal-lg{
    width:100%!important;max-width:100%!important;max-height:94dvh!important;
    border-radius:16px 16px 0 0!important
  }
  .modal-head,.modal-body,.modal-foot{padding-left:13px!important;padding-right:13px!important}
  .modal-foot{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
  .modal-foot .btn{width:100%}

  .detail-meta{grid-template-columns:1fr!important}
  .event-detail-image img{max-height:360px!important}
  .document-body,.rich-content,.minutes-content{overflow-x:auto}
  .document-body img,.rich-content img,.minutes-content img{max-width:100%;height:auto}
  .document-body table,.rich-content table,.minutes-content table{min-width:560px}

  .reader-list{display:grid!important;grid-template-columns:1fr!important}
  .reader-status-card,.reader-chip,.reader-card{min-width:0!important;width:100%}

  .comment-compose{flex-direction:column!important;align-items:stretch!important}
  .comment-compose .btn{width:100%}
  .attachment-card,.attachment{align-items:flex-start!important;flex-wrap:wrap!important}
  .attachment-card .btn,.attachment .btn{margin-left:auto}

  .prep-layout{grid-template-columns:1fr!important}
  .prep-summary-grid{grid-template-columns:1fr 1fr!important}
  .prep-summary-main{grid-column:1/-1!important}
  .prep-task-head{flex-direction:column!important}
  .prep-task-head>div:last-child{width:100%;display:flex;gap:6px;overflow-x:auto;flex-wrap:nowrap}
  .prep-task-head>div:last-child .btn{flex:0 0 auto}
  .subtask-progress-row{display:block!important}
  .subtask-progress-control{min-width:0!important;width:100%!important;margin-top:7px}
  .task-progress-edit{grid-template-columns:68px minmax(0,1fr) 42px!important}
  .assignee-filter-grid{grid-template-columns:1fr!important}
  #prepLeader,#prepTaskAssignee,#prepSubTaskAssignee{min-height:180px}

  .calendar-wrap,.calendar-shell{overflow-x:auto;-webkit-overflow-scrolling:touch}
  .calendar-grid{min-width:700px}
  .day{min-height:82px!important}

  .settings-grid{grid-template-columns:1fr!important}
  .settings-tabs{display:flex!important;overflow-x:auto!important;white-space:nowrap;scrollbar-width:none}
  .settings-tabs::-webkit-scrollbar{display:none}
  .permission-tree-group,.permission-node{min-width:0}
  .permission-children{margin-left:10px!important;padding-left:8px!important}

  .event-image-file-row{align-items:flex-start;flex-direction:column}
  .event-image-file-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
  .event-image-file-actions .btn{width:100%}

  .login-screen{padding:10px!important}
  .login-card{width:100%!important;max-width:430px!important;border-radius:16px!important}
}

@media(max-width:420px){
  .page-actions{grid-template-columns:1fr!important}
  .hero-side,.stats-grid,.prep-summary-grid{grid-template-columns:1fr!important}
  .prep-summary-main{grid-column:auto!important}
  .btn{min-height:42px}
}




/* ===== Flask server adapter only ===== */
html,body{background:#f5f7fb!important;color:#0f172a!important}
.app-header{width:100%!important}
.topbar,.subbar-inner,.page-shell{
  width:100% !important;
  max-width:var(--max) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
.page-shell{padding:30px 32px 48px !important}
a{text-decoration:none;color:inherit}
.data-wrap,.table-wrap{overflow:auto}
.data-wrap .data-table{width:100%}
.search{position:relative}
.search input{padding-left:34px}
.search:before{content:"⌕";position:absolute;left:12px;top:9px;color:#94a3b8;z-index:1}
.cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}
.memory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.memory-note{margin-top:10px;white-space:pre-wrap}
.prep-list-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.prep-event-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;color:inherit}
.prep-event-progress{height:7px;border-radius:999px;background:#e2e8f0;overflow:hidden;margin-top:12px}
.prep-event-progress>span{display:block;height:100%;background:var(--primary)}
.ad-card-container{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.ad-card{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}
.primary-btn{height:var(--control);border:0;border-radius:10px;padding:0 14px;background:var(--primary);color:#fff;font-weight:800}
.itda-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}
.itda-page-head h1{font-size:24px;letter-spacing:-.5px;margin:0 0 6px}
.itda-page-head p{margin:0;color:var(--muted)}
.itda-eyebrow{margin:0 0 6px;font-size:12px;font-weight:850;color:var(--primary);text-transform:uppercase;letter-spacing:.09em}
.itda-panel{background:#fff;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}
.itda-modal{position:fixed;inset:0;background:rgba(15,23,42,.48);display:none;align-items:center;justify-content:center;padding:18px;z-index:3000}
.itda-modal.open{display:flex}.itda-modal-card{width:min(900px,100%);max-height:92vh;background:#fff;border-radius:16px;box-shadow:0 30px 80px rgba(15,23,42,.28);overflow:auto}
.itda-modal-lg{width:min(1100px,100%)}.itda-modal-x{width:34px;height:34px;border:1px solid var(--border);border-radius:9px;background:#fff}
.server-mobile-nav{display:none}
.server-mobile-nav.open{display:none}
.event-modal-image{width:50%;margin:16px auto;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#f8fafc}
.event-modal-image img{display:block;width:100%;height:auto;object-fit:contain}
.event-modal-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}
.event-modal-meta>div{padding:13px;border:1px solid #eef2f7;border-radius:11px;background:#f8fafc}
.event-modal-meta small{display:block;color:var(--muted);margin-bottom:5px}
.event-description{line-height:1.75}
@media(max-width:1100px){
  .prep-list-grid,.ad-card-container,.cards-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .page-shell{padding:16px 12px 32px!important}
  .server-mobile-nav.open{display:block!important;position:fixed;left:8px;right:8px;top:62px;z-index:2000;background:#fff;border:1px solid var(--border);border-radius:14px;padding:8px;box-shadow:0 18px 48px rgba(15,23,42,.22)}
  .server-mobile-nav a{display:flex;min-height:44px;align-items:center;padding:0 12px;border-radius:9px;font-weight:700}
  .cards-grid,.prep-list-grid,.ad-card-container,.memory-grid{grid-template-columns:1fr}
  .event-modal-meta{grid-template-columns:1fr}
}

/* ===== v30.1 exact demo menu state ===== */
.main-nav{display:flex;align-self:stretch;gap:3px}
.main-nav .nav-item{
  position:relative;border:0;background:transparent;color:#475569;
  padding:0 14px;font-weight:650;display:flex;align-items:center;
  text-decoration:none;border-radius:0
}
.main-nav .nav-item:hover{color:var(--text);background:transparent}
.main-nav .nav-item.active{color:var(--primary);background:transparent}
.main-nav .nav-item.active:after{
  content:"";position:absolute;left:14px;right:14px;bottom:0;height:3px;
  background:var(--primary);border-radius:99px 99px 0 0
}
.sub-nav{display:flex;gap:4px;overflow:auto;scrollbar-width:none}
.sub-nav::-webkit-scrollbar{display:none}
.sub-nav .sub-item{
  height:34px;border:0;background:transparent;border-radius:9px;padding:0 12px;
  white-space:nowrap;color:var(--muted);font-size:13px;font-weight:700;
  display:flex;align-items:center;text-decoration:none
}
.sub-nav .sub-item.active{background:var(--primarySoft);color:var(--primary)}
.sub-nav .sub-item:hover{background:#f8fafc;color:var(--text)}

/* ===== v30.2 event detail cleanup ===== */
#serverEventDetailModal .detail-hero{align-items:flex-start}
#serverEventDetailModal .detail-kind{
  display:inline-flex;
  width:auto;
  max-width:max-content;
  height:26px;
  align-items:center;
  padding:0 9px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  color:#fff;
  font-size:11px;
  font-weight:850;
  line-height:1;
}
#serverEventDetailModal .detail-hero h2{width:100%}
#serverEventDetailModal .detail-event-date{
  margin:0;
  color:rgba(255,255,255,.88);
  font-size:13px;
  font-weight:650;
}
#serverEventDetailModal .event-modal-meta{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
@media(max-width:700px){
  #serverEventDetailModal .event-modal-meta{grid-template-columns:1fr}
}


/* ===== v30.3 event detail title area: about 60% of previous height ===== */
#serverEventDetailModal .detail-hero{
  padding:14px 18px;
  gap:5px;
}
#serverEventDetailModal .detail-hero h2{
  margin:5px 0 2px;
  line-height:1.25;
}
#serverEventDetailModal .detail-event-date{
  margin:0;
}


/* ===== v30.4 행사 상세: 행사명 파란 배경 박스 자체 높이 축소 ===== */
#serverEventDetailModal .detail-hero{
  min-height:0 !important;
  height:auto !important;
  padding:9px 16px !important;
  gap:2px !important;
  margin-bottom:12px !important;
}
#serverEventDetailModal .detail-hero h2{
  margin:3px 0 1px !important;
  padding:0 !important;
  line-height:1.18 !important;
  font-size:22px !important;
}
#serverEventDetailModal .detail-kind{
  height:21px !important;
  padding:0 7px !important;
  font-size:10px !important;
}
#serverEventDetailModal .detail-event-date{
  margin:0 !important;
  padding:0 !important;
  line-height:1.25 !important;
  font-size:12px !important;
}


/* ===== v30.5 홈 행사카드: 행사명 배경(cover) 높이 축소 ===== */
#view-home .event-cover{
  height:105px !important;
  min-height:105px !important;
  padding:12px 14px !important;
}
#view-home .cover-title{
  font-size:19px !important;
  line-height:1.2 !important;
}
#view-home .event-kind{
  top:10px !important;
  left:12px !important;
  height:23px !important;
  padding:0 8px !important;
  font-size:10px !important;
}


/* ===== v30.7 화면 캡처 기준 데모 폭 보정 =====
   서버 화면은 2048px 화면에서 약 1600px 폭으로 제한되어 있었고,
   데모는 같은 캡처 폭에서 거의 전체 폭을 사용한다.
*/
@media (min-width:1200px){
  .topbar,
  .subbar-inner,
  .page-shell{
    width:100% !important;
    max-width:2000px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }
  .topbar,
  .subbar-inner{
    padding-left:40px !important;
    padding-right:40px !important;
  }
  .page-shell{
    padding-left:40px !important;
    padding-right:40px !important;
  }
}


/* ===== v30.8 full-width root layout fix =====
   원인: 데모 CSS를 통째로 합치는 과정에서 인쇄/이미지용 html,body 규칙이
   display:grid + place-items:center 로 남아 전체 앱 자체를 가운데 좁게 배치하고 있었음.
*/
html{
  width:100% !important;
  min-width:100% !important;
}
body{
  width:100% !important;
  min-width:100% !important;
  max-width:none !important;
  min-height:100vh !important;
  margin:0 !important;
  padding:0 !important;
  display:block !important;
  place-items:initial !important;
  overflow-x:hidden;
}
.app-header{
  width:100% !important;
  max-width:none !important;
}
@media (min-width:1200px){
  .topbar,
  .subbar-inner,
  .page-shell{
    width:calc(100% - 64px) !important;
    max-width:none !important;
    margin-left:32px !important;
    margin-right:32px !important;
  }
  .topbar,
  .subbar-inner{
    padding-left:0 !important;
    padding-right:0 !important;
  }
  .page-shell{
    padding-left:0 !important;
    padding-right:0 !important;
  }
}


/* ===== v30.9 나의 신청 모달 ===== */
#myRegistrationModal .modal-lg{max-width:900px}
.my-registration-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.my-registration-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:16px 18px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
}
.my-registration-main{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.my-registration-main strong{
  color:var(--text);
  font-size:15px;
}
.my-registration-meta{
  display:flex;
  flex-wrap:wrap;
  gap:7px 14px;
  color:var(--muted);
  font-size:12px;
}
.btn-danger{
  border-color:#fecaca;
  background:var(--dangerSoft);
  color:var(--danger);
}
.btn-danger:hover{
  border-color:#fca5a5;
  background:#fee2e2;
}
@media(max-width:700px){
  .my-registration-item{
    align-items:stretch;
    flex-direction:column;
  }
  .my-registration-item .btn{
    width:100%;
  }
}


/* ===== v30.10 행사 상세 모달 내부 참가신청 ===== */
.registration-modal-head{margin-bottom:18px}
.registration-modal-head h3{margin:5px 0 6px;font-size:22px;line-height:1.3}
.registration-modal-head p:last-child{margin:0;color:var(--muted);font-size:13px}
.detail-registration-form{
  padding:18px;border:1px solid var(--border);border-radius:14px;background:var(--surface2)
}
.registration-result{
  min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:28px
}
.registration-result-icon{
  width:54px;height:54px;display:grid;place-items:center;margin-bottom:14px;border-radius:50%;
  background:var(--primarySoft);color:var(--primary);font-size:25px;font-weight:900
}
.registration-result h3{margin:0 0 10px;font-size:21px}
.registration-result p{margin:3px 0;color:var(--muted)}
.registration-result-success .registration-result-icon{background:var(--successSoft);color:var(--success)}


/* ===== v30.12 global login modal ===== */
body.login-modal-open{overflow:hidden}
.global-login-backdrop{z-index:10000!important;background:rgba(15,23,42,.52)!important;backdrop-filter:blur(3px)}
.global-login-modal{max-width:480px!important;border-radius:20px!important;overflow:hidden!important}
.global-login-modal-head{padding:17px 20px!important;border-bottom:1px solid var(--border)}
.global-login-modal-head h2{margin:2px 0 0;font-size:20px}
.global-login-modal-body{padding:0!important;background:linear-gradient(135deg,#e0eafc,#cfdef3)}
.global-login-container{
  width:100%!important;max-width:none!important;margin:0!important;padding:30px 38px 28px!important;
  background:#fff!important;border:0!important;border-radius:0!important;box-shadow:none!important
}
.global-login-container .login-church-logo{margin-bottom:10px}
.global-login-container .login-church-logo img{width:180px}
.global-login-container .login-system-title{margin-bottom:7px}
.global-login-container .login-system-title img{width:60px;height:60px}
.global-login-container .login-system-title strong{font-size:18px}
.global-login-container .login-sub{margin-bottom:22px!important}
.global-login-container .login-submit{width:100%}
.global-login-error{margin:11px 0 0;text-align:left}
.mobile-login-link{
  width:100%;min-height:44px;border:0;background:transparent;padding:0 12px;border-radius:9px;
  display:flex;align-items:center;color:inherit;font:inherit;font-weight:700;text-align:left;cursor:pointer
}
.mobile-login-link:hover{background:#f8fafc}
@media(max-width:560px){
  .global-login-backdrop{padding:10px!important;align-items:flex-end!important}
  .global-login-modal{max-width:none!important;border-radius:18px 18px 0 0!important;max-height:94dvh!important}
  .global-login-container{padding:24px 20px 22px!important}
  .global-login-container .login-church-logo img{width:160px}
  .global-login-container .login-system-title img{width:52px;height:52px}
}

/* ===== v30.22 attached demo v24: global width ===== */
:root{--max:1600px!important}
html{width:100%!important;min-width:100%!important}
body{width:100%!important;min-width:100%!important;max-width:none!important;margin:0!important;padding:0!important;display:block!important;place-items:initial!important;overflow-x:hidden}
.app-header{width:100%!important;max-width:none!important}
@media(min-width:701px){
  .topbar,.subbar-inner,.page-shell{width:100%!important;max-width:var(--max)!important;margin-left:auto!important;margin-right:auto!important}
  .topbar{height:64px!important;padding:0 32px!important}
  .subbar-inner{padding:0 32px!important}
  .page-shell{padding:30px 32px 48px!important}
}
@media(max-width:700px){
  .topbar,.subbar-inner,.page-shell{width:100%!important;max-width:none!important;margin:0!important;padding-left:16px!important;padding-right:16px!important}
  .page-shell{padding-top:20px!important;padding-bottom:40px!important}
}

/* ===== v30.22 permission-group nested Bible scopes ===== */
.permission-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px}
.permission-group-list{display:grid;align-content:start;gap:7px}
.permission-group-btn{border:1px solid var(--border);background:#fff;border-radius:10px;padding:11px;text-align:left;display:flex;flex-direction:column;gap:3px}
.permission-group-btn.active{border-color:#93c5fd;background:#eff6ff}
.permission-group-btn b{font-size:12px}.permission-group-btn small{font-size:10px;color:var(--muted)}
.permission-editor{border-left:1px solid var(--border);padding-left:16px}
.perm-group{border:1px solid var(--border);border-radius:11px;background:#fff;overflow:hidden;margin-top:9px}
.perm-parent{display:flex;align-items:center;gap:8px;padding:11px 12px;background:#f8fafc;font-size:12px;font-weight:850}
.perm-child,.perm-child-block>.perm-child{display:flex;align-items:center;gap:7px;padding:10px 12px;font-size:11px;border-top:1px solid #eef2f7}
.perm-child-block{border-top:1px solid #eef2f7}.perm-child-block>.perm-child{border-top:0}
.perm-grand{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0 12px 10px 28px;border-left:2px solid #e2e8f0;background:#fbfdff}
.perm-grand label{display:flex;align-items:center;gap:7px;padding:9px 11px;font-size:10px;color:#475569}
.perm-grand input,.perm-child input,.perm-parent input{accent-color:var(--primary)}
@media(max-width:800px){.permission-layout{grid-template-columns:1fr}.permission-editor{border-left:0;border-top:1px solid var(--border);padding-left:0;padding-top:14px}.perm-grand{grid-template-columns:1fr}}

/* ===== v30.22 Bible dashboard, tables, calendar: demo v24 ===== */
.bible-hero{position:relative;overflow:hidden;min-height:235px;border-radius:20px;padding:30px;margin-bottom:18px;background:radial-gradient(circle at 90% 5%,rgba(255,255,255,.22),transparent 28%),linear-gradient(135deg,#312e81,#4f46e5 52%,#7c3aed);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:30px;box-shadow:0 16px 36px rgba(79,70,229,.18)}
.bible-hero h1{font-size:31px;margin-bottom:8px}.bible-hero p:not(.eyebrow){color:rgba(255,255,255,.78);font-size:15px}.bible-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.bible-primary{background:#fff;color:#4338ca}.bible-secondary{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.22);color:#fff}.bible-secondary:hover{background:rgba(255,255,255,.2);color:#fff}.bible-streak{min-width:190px;padding:20px;border:1px solid rgba(255,255,255,.18);border-radius:16px;background:rgba(255,255,255,.11);backdrop-filter:blur(8px)}.bible-streak small,.bible-streak span{display:block;color:rgba(255,255,255,.76)}.bible-streak strong{display:block;font-size:38px;margin:8px 0}.bible-streak span{font-size:12px}
.bible-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.bible-progress-card .progress{margin-top:12px}.bible-big-progress{display:flex;align-items:end;gap:9px}.bible-big-progress strong{font-size:34px;color:#4338ca}.bible-big-progress span{color:var(--muted);padding-bottom:5px}.memory-note{border-top:1px dashed #cbd5e1;margin-top:18px;padding-top:15px}.memory-title{font-size:13px;font-weight:850;margin-bottom:9px}.memory-note blockquote{margin:0 0 7px;padding:11px 13px;border-left:3px solid #818cf8;background:#f8fafc;border-radius:0 10px 10px 0;line-height:1.7;color:#334155}.memory-note small{color:var(--muted)}
.book-progress-list{display:grid;gap:15px}.book-row{display:grid;grid-template-columns:78px 1fr 40px;align-items:center;gap:10px;font-size:12px}.book-row>span{font-weight:750}.book-row>b{text-align:right;color:#4338ca}.book-bar{height:8px;border-radius:999px;background:#eef2ff;overflow:hidden}.book-bar i{display:block;height:100%;background:linear-gradient(90deg,#4f46e5,#8b5cf6);border-radius:999px}
.bible-calendar-card{overflow:hidden}.bible-month{display:grid;grid-template-columns:repeat(7,1fr)}.bible-month .weekday{background:#fafaff}.bible-day{min-height:88px;padding:8px;border:0;border-right:1px solid #eef2f7;border-bottom:1px solid #eef2f7;background:#fff;appearance:none;font:inherit}.bible-day:nth-child(7n){border-right:0}.bible-day b{font-size:11px;color:#64748b}.bible-day.read{background:#fafaff}.bible-day.read:after{content:'✓';display:grid;place-items:center;width:22px;height:22px;margin-top:7px;border-radius:50%;background:#eef2ff;color:#4f46e5;font-weight:900}.bible-day.today{box-shadow:inset 0 0 0 2px #818cf8}.bible-day.today b{color:#4338ca;font-weight:900}
.bible-day-click{border:0;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:5px;transition:background .15s,transform .15s}.bible-day-click span{font-size:9px;line-height:1.25;color:#475569;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.bible-day-click em{font-size:9px;color:var(--success);font-style:normal;font-weight:800}.bible-day-click:hover{background:#eff6ff;transform:translateY(-1px)}.bible-day-click.read{background:#f0fdf4}.bible-day-click:focus-visible{outline:2px solid #818cf8;outline-offset:-2px}.bible-day-empty{background:#fbfdff}
.today-word-card{padding:4px}.today-word-card h2{font-size:25px;margin:15px 0 10px}.bible-text-box{margin:0;padding:18px;border:1px solid #dbeafe;background:#f8fbff;border-radius:13px;display:grid;gap:10px;line-height:1.72}.bible-text-section{margin-bottom:10px}.bible-text-section h3{margin:0 0 6px;padding:8px 10px;background:#eef2ff;border-radius:9px;color:#4338ca}.bible-text-box p{margin:0;display:flex;gap:10px}.bible-text-box p .verse-num,.bible-text-box p>span:first-child{flex:0 0 24px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#e0e7ff;color:#4338ca;font-size:10px;font-weight:850}.bible-text-modal-box{max-height:58vh;overflow:auto}
.bible-celebration{position:fixed;inset:0;z-index:20000;pointer-events:none;display:none}.bible-celebration.show{display:block}.celebration-ribbon{position:absolute;top:22px;left:50%;transform:translateX(-50%);background:linear-gradient(90deg,#fde68a,#fff7ed,#fde68a);padding:11px 18px;border-radius:999px;font-weight:900;box-shadow:0 10px 32px rgba(0,0,0,.13);animation:celebrateDrop 1.7s ease forwards}.celebration-sky{position:absolute;inset:0;overflow:hidden}.celebration-spark{position:absolute;width:8px;height:8px;border-radius:2px;animation:celebrateSpark 1.2s ease-out forwards}@keyframes celebrateDrop{0%{opacity:0;transform:translate(-50%,-28px)}25%,75%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-6px)}}@keyframes celebrateSpark{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--x),var(--y)) rotate(540deg)}}
.bible-calendar-nav{align-items:center}.bible-calendar-nav b{min-width:92px;text-align:center;font-size:12px}
.modal-xl{max-width:1120px}
.bible-table-panel .data-table{min-width:780px}.bible-table-panel .data-table th{height:44px;padding:0 16px;background:#f8fafc;border-bottom:1px solid var(--border);font-size:12px;color:#64748b;text-align:left}.bible-table-panel .data-table td{height:50px;padding:10px 16px;border-bottom:1px solid #eef2f7;color:#334155}.bible-table-panel .data-table tbody tr:hover{background:#fbfdff}
.bible-progress-inline{display:flex;align-items:center;gap:7px;white-space:nowrap}.mini-progress{width:140px;height:7px;border-radius:99px;background:#e2e8f0;overflow:hidden;display:inline-block}.mini-progress i{display:block;height:100%;background:var(--primary)}
.bible-pagination{display:flex;justify-content:center;gap:6px;margin-top:14px}.bible-pagination a{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--border);border-radius:9px;background:#fff;color:#475569}.bible-pagination a.active{background:var(--primary);border-color:var(--primary);color:#fff}
.bible-admin-two-col{margin-bottom:16px}.top-progress-row{display:flex;align-items:center;gap:9px;padding:8px 0;border-bottom:1px solid #eef2f7}.top-progress-row>span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--primarySoft);color:var(--primary);font-size:10px;font-weight:900}.top-progress-row>div{flex:1;display:flex;flex-direction:column}.top-progress-row b{font-size:11px}.top-progress-row small{font-size:9px;color:var(--muted)}.top-progress-row strong{color:var(--primary)}

/* Bible memory detail */
.bible-note-card{cursor:pointer;transition:.16s}.bible-note-card:hover{transform:translateY(-2px);border-color:#c4b5fd;box-shadow:0 10px 24px rgba(79,70,229,.08)}.bible-note-preview{font-size:11px;color:#475569}.note-detail-memo{margin-top:14px;padding:14px;border:1px solid #e0e7ff;border-radius:12px;background:#fafaff}.note-detail-memo p{margin:0;white-space:pre-wrap;line-height:1.65;color:#475569}.note-verse-line{padding:7px 9px;border-radius:9px;align-items:flex-start}.note-verse-line b{font-weight:500;color:#334155;line-height:1.75}.note-verse-line.is-highlighted{background:#fff3a3!important;box-shadow:inset 4px 0 0 #f59e0b}.note-verse-line.is-highlighted b{font-weight:800;color:#78350f}
.bible-plan-form{overflow:visible}.bible-plan-form-foot{margin:18px -0px -0px;padding-left:0;padding-right:0;padding-bottom:0}

@media(max-width:900px){.bible-dashboard-grid{grid-template-columns:1fr}.bible-hero{align-items:flex-start;flex-direction:column}.bible-streak{width:100%;min-width:0}.bible-admin-two-col{grid-template-columns:1fr}}
@media(max-width:700px){.bible-hero{padding:22px}.bible-hero h1{font-size:25px}.bible-actions .btn{flex:1;min-width:130px}.bible-month .bible-day{min-height:64px;padding:6px}.bible-day-click span{font-size:0}.bible-day-click em{font-size:0}.bible-day.read:after{width:17px;height:17px;font-size:10px;margin-top:4px}.bible-calendar-card .panel-head{align-items:flex-start;flex-direction:column}.bible-calendar-nav{width:100%;justify-content:space-between}.mini-progress{width:90px}.bible-text-modal-box{max-height:62vh}}


/* v30.23 Bible text modal layout fix
   기존 데모의 .bible-text-box p span 규칙이 모든 span을 24px로 고정해
   실제 본문 span까지 한 글자씩 세로로 보이던 문제를 수정한다. */
.bible-text-modal-box .verse-line{
  display:flex !important;
  align-items:flex-start !important;
  gap:10px !important;
  width:100% !important;
  min-width:0 !important;
  padding:10px 12px !important;
  border:1px solid #e0e7ff !important;
  border-radius:12px !important;
  background:#fff !important;
}

.bible-text-modal-box .verse-line > .verse-num{
  flex:0 0 24px !important;
  width:24px !important;
  min-width:24px !important;
  height:24px !important;
  display:grid !important;
  place-items:center !important;
  margin-top:1px !important;
}

.bible-text-modal-box .verse-line > span:not(.verse-num){
  flex:1 1 auto !important;
  width:auto !important;
  min-width:0 !important;
  height:auto !important;
  display:block !important;
  background:transparent !important;
  border-radius:0 !important;
  color:#334155 !important;
  font-size:14px !important;
  font-weight:500 !important;
  line-height:1.8 !important;
  word-break:keep-all !important;
  overflow-wrap:break-word !important;
  white-space:normal !important;
}

.bible-text-modal-box .bible-text-section{
  min-width:0 !important;
}

.bible-text-modal-box .bible-text-section h3{
  position:sticky;
  top:0;
  z-index:2;
}

@media(max-width:700px){
  .bible-text-modal-box .verse-line{
    padding:9px 10px !important;
  }
  .bible-text-modal-box .verse-line > span:not(.verse-num){
    font-size:13px !important;
    line-height:1.75 !important;
  }
}


/* ===== v30.26 attached demo v24: global table appearance =====
   데모의 .table-wrap / .data-table 규칙을 전체 서버 화면 마지막 우선순위로 고정 */
.table-wrap,
.data-wrap{
  width:100% !important;
  overflow:auto !important;
  -webkit-overflow-scrolling:touch;
}

.data-table{
  width:100% !important;
  min-width:780px !important;
  margin:0 !important;
  border:0 !important;
  border-spacing:0 !important;
  border-collapse:collapse !important;
  background:#fff !important;
  table-layout:auto !important;
  font-family:inherit !important;
}

.data-table thead,
.data-table tbody,
.data-table tfoot{
  border:0 !important;
}

.data-table th{
  height:44px !important;
  padding:0 16px !important;
  border:0 !important;
  border-bottom:1px solid var(--border) !important;
  background:#f8fafc !important;
  color:#64748b !important;
  font-size:12px !important;
  font-weight:700 !important;
  line-height:1.35 !important;
  text-align:left !important;
  vertical-align:middle !important;
  white-space:nowrap;
}

.data-table td{
  height:50px !important;
  padding:10px 16px !important;
  border:0 !important;
  border-bottom:1px solid #eef2f7 !important;
  background:#fff !important;
  color:#334155 !important;
  font-size:14px !important;
  line-height:1.45 !important;
  text-align:left;
  vertical-align:middle !important;
}

.data-table tbody tr{
  background:#fff !important;
}

.data-table tbody tr:hover,
.data-table tbody tr:hover > td{
  background:#fbfdff !important;
}

.data-table tbody tr:last-child > td{
  border-bottom:0 !important;
}

.data-table strong{
  color:var(--text) !important;
}

.data-table .align-right,
.data-table th.align-right,
.data-table td.align-right{
  text-align:right !important;
}

/* 데모처럼 panel 안의 표는 패널 경계에 바로 붙인다. */
.panel > .table-wrap,
.panel > .data-wrap{
  margin:0 !important;
  padding:0 !important;
}

/* 사용자 표의 최종 데모 폭 */
.user-full-table{
  min-width:1120px !important;
}

/* 문서 본문 안의 표도 데모 규칙 유지 */
.editor-content table,
.document-detail table{
  width:100% !important;
  border-collapse:collapse !important;
  margin:10px 0 16px !important;
}
.editor-content th,
.editor-content td,
.document-detail th,
.document-detail td{
  border:1px solid #cbd5e1 !important;
  padding:8px !important;
  vertical-align:top !important;
}
.editor-content th,
.document-detail th{
  background:#f8fafc !important;
  font-weight:800 !important;
}

/* 수입/지출 편집표 */
.finance-edit-wrap{
  overflow:auto !important;
  border:1px solid var(--border) !important;
  border-radius:11px !important;
}
.finance-edit-wrap .finance-table{
  margin:0 !important;
  min-width:650px !important;
}

/* ===== v30.26 login/logout response speed ===== */
.login-card-success{
  animation-duration:.22s !important;
}
.original-login-intro.show{
  animation-duration:.88s !important;
}
.original-login-intro h1{
  animation-duration:.62s !important;
}


/* ===== v30.27 Bible reading plan modal polish ===== */

/* 읽기표 상세: 중요한 열은 절대 줄바꿈하지 않고 읽기범위만 유연하게 줄바꿈 */
.bible-plan-detail-table{
  min-width:860px !important;
  table-layout:fixed !important;
}
.bible-plan-detail-table .col-day{width:74px}
.bible-plan-detail-table .col-date{width:112px}
.bible-plan-detail-table .col-range{width:auto}
.bible-plan-detail-table .col-status{width:82px}
.bible-plan-detail-table .col-read{width:96px}

.bible-plan-detail-table .bible-day-cell,
.bible-plan-detail-table .bible-date-cell,
.bible-plan-detail-table .bible-status-cell,
.bible-plan-detail-table .bible-action-cell{
  white-space:nowrap !important;
}

.bible-plan-detail-table .bible-reading-range-cell{
  white-space:normal !important;
  word-break:keep-all !important;
  overflow-wrap:break-word !important;
  line-height:1.6 !important;
}
.bible-plan-detail-table .bible-reading-range-cell strong{
  font-size:13px !important;
  font-weight:750 !important;
}
.bible-plan-detail-table .bible-action-cell .btn{
  white-space:nowrap !important;
}

.bible-plan-detail-meta .meta-box{
  min-height:72px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.bible-plan-detail-meta .meta-box span{
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:10px;
}

/* 읽기계획 목록 */
.bible-plan-list-table{
  min-width:820px !important;
  table-layout:fixed !important;
}
.bible-plan-list-table .col-user{width:160px}
.bible-plan-list-table .col-plan{width:auto}
.bible-plan-list-table .col-date{width:112px}
.bible-plan-list-table .col-count{width:105px}
.bible-plan-list-table .col-progress{width:190px}
.bible-plan-list-table .col-action{width:86px}
.bible-plan-user-cell{
  white-space:nowrap !important;
}
.bible-plan-user-cell strong,
.bible-plan-user-cell small{
  display:block;
}
.bible-plan-user-cell small{
  margin-top:3px;
  color:var(--muted);
  font-size:10px;
}
.bible-plan-title-link{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.bible-progress-inline{
  display:flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}
.bible-progress-inline .mini-progress{
  flex:1 1 auto;
  min-width:80px;
  margin:0;
}
.bible-progress-inline small{
  flex:0 0 34px;
  text-align:right;
  color:var(--muted);
  font-size:10px;
}

/* 계획 만들기 */
.bible-plan-modal-form{
  width:100%;
  max-width:820px;
  margin:0 auto;
}
.bible-plan-form-intro{
  display:flex;
  align-items:flex-start;
  gap:12px;
  margin-bottom:18px;
  padding:14px 15px;
  border:1px solid #c7d2fe;
  border-radius:13px;
  background:#f8faff;
}
.bible-plan-form-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#eef2ff;
  font-size:20px;
}
.bible-plan-form-intro strong{
  display:block;
  margin-bottom:4px;
  color:#312e81;
  font-size:13px;
}
.bible-plan-form-intro p{
  margin:0;
  color:#64748b;
  font-size:11px;
  line-height:1.6;
}
.bible-plan-form-grid{
  gap:16px !important;
}
.bible-plan-form-grid .field{
  gap:8px !important;
}
.bible-plan-form-grid .field>span{
  font-size:12px !important;
  font-weight:800 !important;
  color:#334155 !important;
}
.bible-plan-form-grid .input{
  width:100% !important;
  min-width:0 !important;
  height:44px !important;
}
.bible-repeat-control{
  display:grid;
  grid-template-columns:minmax(0,1fr) 36px;
  align-items:center;
  gap:8px;
}
.bible-repeat-control>span{
  color:var(--muted);
  font-size:12px;
  font-weight:750;
}
.bible-plan-form-note{
  margin-top:16px;
  padding:11px 12px;
  border-radius:10px;
  background:#f8fafc;
  color:#64748b;
  font-size:10px;
  line-height:1.6;
}
.bible-plan-form-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid var(--border);
}
.bible-plan-form-actions .btn{
  min-width:92px;
}

/* 읽기표 상세 모달은 본문 영역을 조금 더 넓게 사용 */
#planDetailModal .modal-body{
  padding:20px !important;
}
#planDetailModal .bible-plan-detail-panel{
  border-radius:13px !important;
}

/* scrollbar와 모바일 */
@media(max-width:700px){
  .bible-plan-modal-form{
    max-width:none;
  }
  .bible-plan-form-intro{
    padding:12px;
  }
  .bible-plan-form-grid{
    grid-template-columns:1fr !important;
  }
  .bible-plan-form-grid .field.full{
    grid-column:auto !important;
  }
  .bible-plan-form-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .bible-plan-form-actions .btn{
    width:100%;
  }
  #planDetailModal .modal-body{
    padding:12px !important;
  }
}


/* ===== v30.28 dashboard recent memory + clickable verse memo ===== */
.recent-memory-card{
  margin-top:10px !important;
  padding-top:10px !important;
  border-top:1px dashed #cbd5e1 !important;
}
.recent-memory-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:7px;
}
.recent-memory-head .memory-title{
  margin:0 !important;
}
.recent-memory-head a{
  color:var(--primary);
  font-size:10px;
  font-weight:800;
  text-decoration:none;
}
.recent-memory-head a:hover{
  text-decoration:underline;
  text-underline-offset:2px;
}
.recent-memory-list{
  display:grid;
  gap:4px;
}
.recent-memory-item{
  width:100%;
  min-height:38px;
  display:grid;
  grid-template-columns:112px minmax(0,1fr) 18px;
  align-items:center;
  gap:8px;
  padding:7px 9px;
  border:0;
  border-radius:9px;
  background:#f8fafc;
  color:#334155;
  text-align:left;
}
.recent-memory-item:hover{
  background:#eef2ff;
}
.recent-memory-ref{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#4338ca;
  font-size:10px;
  font-weight:850;
}
.recent-memory-snippet{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px;
}
.recent-memory-arrow{
  color:#94a3b8;
  font-size:17px;
  text-align:right;
}
.recent-memory-empty{
  padding:10px 2px;
  color:var(--muted);
  font-size:11px;
}

/* 본문 클릭 안내 */
.bible-text-click-help{
  margin:0 0 10px;
  padding:9px 11px;
  border-radius:9px;
  background:#f8fafc;
  color:#64748b;
  font-size:10px;
}

/* 본문 각 절은 기억/메모 선택 버튼처럼 동작 */
.bible-text-modal-box .bible-memory-selectable{
  position:relative;
  cursor:pointer !important;
  transition:background .14s,border-color .14s,box-shadow .14s;
}
.bible-text-modal-box .bible-memory-selectable:hover{
  border-color:#c7d2fe !important;
  background:#fafaff !important;
}
.bible-text-modal-box .bible-memory-selectable.has-saved-memory:after{
  content:'★';
  position:absolute;
  right:10px;
  top:10px;
  color:#7c3aed;
  font-size:10px;
}
.bible-text-modal-box .bible-memory-selectable.selected-memory-verse{
  border-color:#818cf8 !important;
  background:#eef2ff !important;
  box-shadow:0 0 0 2px rgba(129,140,248,.12);
}
.bible-text-modal-box .bible-memory-selectable.memory-source-highlight{
  border-color:#facc15 !important;
  background:#fffbeb !important;
}
.bible-text-modal-box .bible-memory-selectable.memory-source-highlight .verse-text{
  background:linear-gradient(transparent 55%,#fef08a 55%) !important;
}

/* 선택한 절 기억/메모 편집기 */
.verse-memory-editor{
  margin-top:14px;
  padding:15px;
  border:1px solid #c7d2fe;
  border-radius:13px;
  background:#f8faff;
}
.verse-memory-editor-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}
.verse-memory-editor-head>div{
  display:flex;
  align-items:center;
  gap:8px;
}
.verse-memory-editor-head strong{
  font-size:13px;
  color:#312e81;
}
.verse-memory-close{
  width:30px !important;
  height:30px !important;
}
.verse-memory-selected-text{
  margin-bottom:11px;
  padding:10px 11px;
  border-left:3px solid #818cf8;
  border-radius:0 9px 9px 0;
  background:#fff;
  color:#475569;
  font-size:11px;
  line-height:1.7;
}
.verse-memory-toggle{
  margin-bottom:9px;
}
.verse-memory-editor .textarea{
  width:100%;
  min-height:92px;
  background:#fff;
}
.verse-memory-actions{
  display:flex;
  justify-content:flex-end;
  gap:7px;
  margin-top:10px;
}

@media(max-width:700px){
  .recent-memory-item{
    grid-template-columns:92px minmax(0,1fr) 14px;
    gap:6px;
  }
  .verse-memory-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .verse-memory-actions .btn{
    width:100%;
  }
}


/* ===== v30.29 Bible notes search / pagination / delete ===== */
.bible-notes-toolbar{
  margin-bottom:14px !important;
  padding:12px 14px !important;
}
.bible-notes-search-form{
  display:flex;
  align-items:center;
  gap:8px;
}
.bible-notes-search{
  width:min(520px,100%);
  flex:0 1 520px;
}
.bible-notes-result-count{
  margin-left:auto;
  color:var(--muted);
  font-size:11px;
  white-space:nowrap;
}
.bible-notes-result-count strong{color:var(--text)}

.bible-notes-grid{align-items:stretch}
.bible-note-card{
  min-height:210px;
  display:flex;
  flex-direction:column;
  cursor:pointer;
  transition:transform .16s,border-color .16s,box-shadow .16s,background .16s;
}
.bible-note-card:hover{
  transform:translateY(-2px);
  border-color:#c4b5fd;
  box-shadow:0 10px 24px rgba(79,70,229,.08);
}
.bible-note-card:focus-visible{
  outline:2px solid #818cf8;
  outline-offset:2px;
}
.bible-note-card h3{margin:13px 0 7px !important}
.bible-note-verse-preview{
  min-height:0 !important;
  margin:0 !important;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.bible-note-preview{
  margin-top:auto !important;
  padding-top:12px !important;
  border-top:1px dashed #cbd5e1 !important;
}
.bible-note-preview-label{
  display:block;
  margin-bottom:6px;
  color:#7c3aed;
  font-size:9px;
  font-weight:850;
}
.bible-note-preview p{
  margin:0 !important;
  min-height:0 !important;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  color:#475569;
  font-size:11px !important;
  line-height:1.55 !important;
}
.bible-notes-empty{grid-column:1/-1}

.bible-notes-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  margin-top:20px;
}
.bible-notes-pagination .page-btn{
  min-width:34px;
  height:34px;
  display:grid;
  place-items:center;
  padding:0 9px;
  border:1px solid var(--border);
  border-radius:9px;
  background:#fff;
  color:#64748b;
  font-size:11px;
  font-weight:800;
  text-decoration:none;
}
.bible-notes-pagination .page-btn:hover{
  border-color:#bfdbfe;
  background:var(--primarySoft);
  color:var(--primary);
}
.bible-notes-pagination .page-btn.active{
  border-color:var(--primary);
  background:var(--primary);
  color:#fff;
}
.bible-notes-pagination .page-gap{
  padding:0 3px;
  color:#94a3b8;
}

.note-detail-text-box{
  max-height:52vh;
  overflow:auto;
}
.note-detail-footer{
  display:flex !important;
  justify-content:space-between !important;
}
.note-detail-footer-right{
  display:flex;
  gap:8px;
}

@media(max-width:700px){
  .bible-notes-search-form{
    align-items:stretch;
    flex-wrap:wrap;
  }
  .bible-notes-search{
    flex:1 0 100%;
    width:100%;
  }
  .bible-notes-search-form>.btn{flex:1}
  .bible-notes-result-count{
    width:100%;
    margin-left:0;
    margin-top:3px;
  }
  .bible-note-card{min-height:0}
}


/* ===== v30.30 memory / memo compact one-line layout ===== */

/* 대시보드 최근 기억/메모 영역을 불필요하게 크게 잡지 않도록 축소 */
.recent-memory-card{
  margin-top:8px !important;
  padding-top:8px !important;
  padding-bottom:0 !important;
  min-height:0 !important;
}
.recent-memory-head{
  min-height:26px !important;
  margin-bottom:4px !important;
}
.recent-memory-list{
  gap:3px !important;
}
.recent-memory-item{
  min-height:32px !important;
  height:32px !important;
  padding:4px 8px !important;
}
.recent-memory-ref,
.recent-memory-snippet{
  line-height:1.2 !important;
}
.recent-memory-empty{
  padding:6px 2px !important;
}

/* 기억/메모 카드의 메모 영역은 한 줄 높이만 사용 */
.bible-note-preview{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  min-height:30px !important;
  max-height:30px !important;
  margin-top:auto !important;
  padding:7px 0 0 !important;
  border-top:1px dashed #cbd5e1 !important;
  overflow:hidden !important;
}
.bible-note-preview-label{
  flex:0 0 auto !important;
  display:inline-flex !important;
  align-items:center !important;
  height:20px !important;
  margin:0 !important;
  padding:0 6px !important;
  border-radius:999px !important;
  background:#fff7ed !important;
  color:#d97706 !important;
  font-size:9px !important;
  font-weight:850 !important;
  line-height:20px !important;
}
.bible-note-preview p{
  flex:1 1 auto !important;
  min-width:0 !important;
  height:20px !important;
  margin:0 !important;
  display:block !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
  font-size:11px !important;
  line-height:20px !important;
}

/* 메모가 없는 카드도 높이가 과도하게 늘어나지 않게 */
.bible-note-card{
  min-height:180px !important;
}


/* ===== v30.31 dashboard memory title height only ===== */
/* '기억/메모한 본문' 제목 영역은 제목 한 줄 높이만 사용 */
.recent-memory-head{
  height:24px !important;
  min-height:24px !important;
  max-height:24px !important;
  margin:0 0 4px !important;
  padding:0 !important;
  align-items:center !important;
}

.recent-memory-head .memory-title{
  margin:0 !important;
  padding:0 !important;
  line-height:24px !important;
  height:24px !important;
  min-height:24px !important;
  font-size:13px !important;
}

.recent-memory-head a{
  margin:0 !important;
  padding:0 !important;
  line-height:24px !important;
  height:24px !important;
}

/* 제목 위/아래 여백도 최소화 */
.recent-memory-card{
  margin-top:6px !important;
  padding-top:6px !important;
}


/* ===== v30.32 dashboard memory title ultra compact ===== */
/* 제목 영역을 기존보다 훨씬 얇게 압축 */
.recent-memory-card{
  margin-top:2px !important;
  padding-top:2px !important;
}

.recent-memory-head{
  height:14px !important;
  min-height:14px !important;
  max-height:14px !important;
  margin:0 0 2px !important;
  padding:0 !important;
  line-height:14px !important;
  align-items:center !important;
}

.recent-memory-head .memory-title{
  height:14px !important;
  min-height:14px !important;
  max-height:14px !important;
  margin:0 !important;
  padding:0 !important;
  font-size:11px !important;
  line-height:14px !important;
  display:flex !important;
  align-items:center !important;
}

.recent-memory-head a{
  height:14px !important;
  min-height:14px !important;
  max-height:14px !important;
  margin:0 !important;
  padding:0 !important;
  font-size:9px !important;
  line-height:14px !important;
  display:flex !important;
  align-items:center !important;
}

/* memory-note 원본 스타일이 위쪽 여백을 다시 키우지 못하도록 차단 */
.memory-note.recent-memory-card{
  border-top:1px dashed #cbd5e1 !important;
  margin-top:2px !important;
  padding-top:2px !important;
}


/* ===== v30.33 dashboard memory title: keep font size, reduce height only ===== */
/* 글씨 크기는 원래대로 유지하고 제목 한 줄이 딱 들어갈 정도만 확보 */
.recent-memory-card{
  margin-top:3px !important;
  padding-top:3px !important;
}

.recent-memory-head{
  height:20px !important;
  min-height:20px !important;
  max-height:20px !important;
  margin:0 0 3px !important;
  padding:0 !important;
  line-height:20px !important;
  align-items:center !important;
}

.recent-memory-head .memory-title{
  height:20px !important;
  min-height:20px !important;
  max-height:20px !important;
  margin:0 !important;
  padding:0 !important;
  font-size:13px !important;
  line-height:20px !important;
  display:flex !important;
  align-items:center !important;
}

.recent-memory-head a{
  height:20px !important;
  min-height:20px !important;
  max-height:20px !important;
  margin:0 !important;
  padding:0 !important;
  font-size:10px !important;
  line-height:20px !important;
  display:flex !important;
  align-items:center !important;
}

/* 기존 memory-note 기본 여백이 제목 영역을 키우지 않도록 차단 */
.memory-note.recent-memory-card{
  margin-top:3px !important;
  padding-top:3px !important;
}


/* ===== v30.34 dashboard memory whitespace fix =====
   .memory-note 에 적용된 white-space:pre-wrap 때문에
   HTML 들여쓰기/줄바꿈까지 빈 줄로 렌더링되던 문제 수정 */
.memory-note.recent-memory-card{
  white-space:normal !important;
  margin-top:4px !important;
  padding-top:4px !important;
  padding-bottom:0 !important;
}

.recent-memory-head{
  height:20px !important;
  min-height:20px !important;
  max-height:20px !important;
  margin:0 0 4px !important;
  padding:0 !important;
  white-space:normal !important;
}

.recent-memory-head .memory-title{
  height:20px !important;
  min-height:20px !important;
  max-height:20px !important;
  margin:0 !important;
  padding:0 !important;
  font-size:13px !important;
  line-height:20px !important;
}

.recent-memory-head a{
  height:20px !important;
  margin:0 !important;
  padding:0 !important;
  font-size:10px !important;
  line-height:20px !important;
}

.recent-memory-list{
  margin:0 !important;
  padding:0 !important;
  white-space:normal !important;
}


/* ===== v30.35 Bible plan list modal polish ===== */
.bible-plan-list-panel{
  overflow:hidden !important;
  border:1px solid var(--border) !important;
  border-radius:14px !important;
  background:#fff !important;
  box-shadow:none !important;
}

.bible-plan-list-panel .table-wrap{
  max-height:58vh;
  overflow:auto !important;
}

.bible-plan-list-table{
  min-width:820px !important;
  table-layout:fixed !important;
}

.bible-plan-list-table .col-user{width:150px !important}
.bible-plan-list-table .col-plan{width:auto !important}
.bible-plan-list-table .col-date{width:112px !important}
.bible-plan-list-table .col-count{width:112px !important}
.bible-plan-list-table .col-progress{width:172px !important}
.bible-plan-list-table .col-action{width:74px !important}

.bible-plan-list-table thead th{
  position:sticky;
  top:0;
  z-index:2;
  height:42px !important;
  padding:0 14px !important;
  background:#f8fafc !important;
  white-space:nowrap !important;
}

.bible-plan-list-table tbody td{
  height:58px !important;
  padding:9px 14px !important;
  vertical-align:middle !important;
}

.bible-plan-list-table tbody tr:hover td{
  background:#fafcff !important;
}

.bible-plan-user-cell{
  line-height:1.25 !important;
}

.bible-plan-user-cell strong{
  display:block;
  margin:0 0 4px !important;
  color:#0f172a !important;
  font-size:13px !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.bible-plan-user-cell small{
  display:block;
  margin:0 !important;
  color:#64748b !important;
  font-size:10px !important;
  line-height:1.15 !important;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.bible-plan-title-link{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:#0f172a !important;
  font-size:13px !important;
  font-weight:800 !important;
  line-height:1.3 !important;
  text-align:left !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}

.bible-plan-title-link:hover{
  color:var(--primary) !important;
  text-decoration:underline;
  text-underline-offset:3px;
}

.bible-plan-list-table .bible-date-cell,
.bible-plan-list-table .bible-count-cell{
  color:#334155 !important;
  font-size:12px !important;
  white-space:nowrap !important;
}

.bible-progress-inline{
  display:grid !important;
  grid-template-columns:minmax(80px,1fr) 32px !important;
  align-items:center !important;
  gap:8px !important;
  width:100% !important;
}

.bible-progress-inline .mini-progress{
  width:100% !important;
  height:7px !important;
  margin:0 !important;
  border-radius:999px !important;
  background:#e2e8f0 !important;
  overflow:hidden !important;
}

.bible-progress-inline .mini-progress i{
  display:block !important;
  height:100% !important;
  min-width:0 !important;
  border-radius:999px !important;
  background:var(--primary) !important;
}

.bible-progress-inline small{
  width:32px !important;
  color:#475569 !important;
  font-size:9px !important;
  text-align:right !important;
  white-space:nowrap !important;
}

.bible-plan-list-table .bible-action-cell{
  padding-left:8px !important;
  padding-right:12px !important;
  white-space:nowrap !important;
}

.bible-plan-view-btn{
  min-width:54px !important;
  height:32px !important;
  padding:0 12px !important;
  white-space:nowrap !important;
  line-height:30px !important;
}

/* 읽기표 보기 모달 자체도 너무 넓거나 좁지 않게 정리 */
#globalRegisterModal .modal:has(.bible-plan-list-panel),
#globalRegisterModal .modal-lg:has(.bible-plan-list-panel){
  max-width:1120px !important;
}

@media(max-width:700px){
  .bible-plan-list-panel .table-wrap{
    max-height:62vh;
  }

  .bible-plan-list-table{
    min-width:760px !important;
  }

  .bible-plan-list-table tbody td{
    height:54px !important;
    padding:8px 12px !important;
  }
}


/* ===== v30.36 verse save choices + Bible sharing polish ===== */

/* 본문 저장 옵션 */
.verse-save-options{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin:12px 0;
}
.verse-save-option{
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:11px 12px;
  border:1px solid var(--border);
  border-radius:11px;
  background:#fff;
  cursor:pointer;
  transition:.15s;
}
.verse-save-option:hover{
  border-color:#c7d2fe;
  background:#fafaff;
}
.verse-save-option.active{
  border-color:#818cf8;
  background:#eef2ff;
}
.verse-save-option input{
  flex:0 0 auto;
  width:17px;
  height:17px;
  margin-top:1px;
  accent-color:#4f46e5;
}
.verse-save-option>span{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.verse-save-option b{
  color:#312e81;
  font-size:11px;
}
.verse-save-option small{
  color:#64748b;
  font-size:9px;
  line-height:1.4;
}
.verse-save-panel{
  display:grid;
  gap:10px;
  margin-top:9px;
  padding:12px;
  border:1px solid #e2e8f0;
  border-radius:11px;
  background:#fff;
}
.verse-save-panel-title{
  color:#334155;
  font-size:11px;
  font-weight:850;
}
.verse-save-panel .field{
  gap:6px !important;
}
.verse-save-panel .textarea{
  min-height:100px;
}
#verseShareFields .textarea{
  min-height:125px;
}

/* 말씀나눔 화면 */
.sharing-page-head{
  margin-bottom:14px !important;
}
.sharing-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
  padding:10px 13px;
  border:1px solid var(--border);
  border-radius:11px;
  background:#fff;
  color:#64748b;
  font-size:10px;
}
.sharing-summary strong{
  color:var(--primary);
  font-size:12px;
}
.sharing-page-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:14px !important;
}
.sharing-page-card{
  min-height:150px;
  display:flex;
  flex-direction:column;
  padding:17px !important;
  transition:transform .16s,border-color .16s,box-shadow .16s;
}
.sharing-page-card:hover{
  transform:translateY(-2px);
  border-color:#c4b5fd !important;
  box-shadow:0 10px 25px rgba(79,70,229,.08) !important;
}
.sharing-page-card:focus-visible{
  outline:2px solid #818cf8;
  outline-offset:2px;
}
.sharing-page-card .sharing-author{
  margin-bottom:11px !important;
}
.sharing-page-card .badge-violet{
  align-self:flex-start;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.sharing-page-card h3{
  margin:11px 0 7px !important;
  color:#0f172a;
  font-size:15px;
  line-height:1.35;
}
.sharing-card-snippet{
  margin:0 !important;
  min-height:0 !important;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  color:#475569 !important;
  font-size:11px !important;
  line-height:1.65 !important;
}
.sharing-page-card .sharing-foot{
  margin-top:auto;
  padding-top:11px !important;
}
.sharing-empty{
  grid-column:1/-1;
}
.sharing-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  margin-top:20px;
}
.sharing-pagination .page-btn{
  min-width:34px;
  height:34px;
  display:grid;
  place-items:center;
  padding:0 9px;
  border:1px solid var(--border);
  border-radius:9px;
  background:#fff;
  color:#64748b;
  font-size:11px;
  font-weight:800;
  text-decoration:none;
}
.sharing-pagination .page-btn:hover{
  border-color:#bfdbfe;
  background:var(--primarySoft);
  color:var(--primary);
}
.sharing-pagination .page-btn.active{
  border-color:var(--primary);
  background:var(--primary);
  color:#fff;
}
.sharing-pagination .page-gap{
  color:#94a3b8;
}

/* 말씀나눔 작성 모달 */
.sharing-compose-form{
  width:100%;
  max-width:760px;
  margin:0 auto;
  padding:20px 22px 24px;
  display:grid;
  gap:14px;
}
.sharing-compose-intro{
  display:flex;
  align-items:flex-start;
  gap:11px;
  padding:13px 14px;
  border:1px solid #ddd6fe;
  border-radius:12px;
  background:#fafaff;
}
.sharing-compose-icon{
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#ede9fe;
  font-size:18px;
}
.sharing-compose-intro strong{
  display:block;
  color:#5b21b6;
  font-size:12px;
}
.sharing-compose-intro p{
  margin:4px 0 0;
  color:#64748b;
  font-size:10px;
  line-height:1.55;
}
.sharing-compose-form .field{
  gap:7px !important;
}
.sharing-compose-form .field>span{
  font-size:11px !important;
  font-weight:800 !important;
}
.sharing-compose-form .field>span small{
  color:#94a3b8;
  font-weight:600;
}
.sharing-compose-textarea{
  min-height:190px !important;
}
.sharing-compose-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  padding-top:13px;
  border-top:1px solid var(--border);
}

/* 말씀나눔 상세 모달 */
.sharing-detail-wrap{
  display:grid;
  gap:13px;
}
.sharing-detail-author{
  display:flex;
  align-items:center;
  gap:9px;
}
.sharing-detail-author>div{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.sharing-detail-author b{
  font-size:12px;
}
.sharing-detail-author small{
  color:var(--muted);
  font-size:9px;
}
.sharing-passage-box{
  display:flex;
  align-items:center;
  gap:8px;
  padding:11px 12px;
  border:1px solid #ddd6fe;
  border-radius:11px;
  background:#fafaff;
}
.sharing-passage-box strong{
  color:#5b21b6;
  font-size:12px;
}
.sharing-detail-content{
  margin:0 !important;
  padding:17px !important;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
  color:#334155;
  font-size:12px;
  line-height:1.8;
}
.sharing-detail-content p{
  margin:0 0 9px !important;
}
.sharing-comments-section{
  margin-top:16px;
  padding-top:15px;
  border-top:1px solid var(--border);
}
.sharing-comments-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:9px;
}
.sharing-comments-head h3{
  margin:0;
  font-size:13px;
}
.sharing-comments-head span{
  min-width:24px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:var(--primarySoft);
  color:var(--primary);
  font-size:9px;
  font-weight:850;
}
.sharing-detail-foot{
  justify-content:space-between !important;
}

@media(max-width:850px){
  .sharing-page-grid{
    grid-template-columns:1fr !important;
  }
}
@media(max-width:700px){
  .verse-save-options{
    grid-template-columns:1fr;
  }
  .sharing-summary{
    align-items:flex-start;
    flex-direction:column;
  }
  .sharing-compose-form{
    padding:14px 12px 18px;
  }
  .sharing-compose-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }
  .sharing-compose-actions .btn{
    width:100%;
  }
}


/* ===== v30.37 sharing Bible selector + verse detail ===== */

.sharing-passage-selector-field{
  gap:9px !important;
}

.sharing-passage-selector{
  display:grid;
  grid-template-columns:1.5fr .75fr .75fr;
  gap:8px;
}

.sharing-passage-selector label{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:5px;
}

.sharing-passage-selector label small{
  color:#64748b;
  font-size:9px;
  font-weight:800;
}

.sharing-passage-selector .input{
  width:100% !important;
  min-width:0 !important;
}

.sharing-passage-selector .input:disabled{
  background:#f8fafc !important;
  color:#94a3b8 !important;
  cursor:not-allowed;
}

.sharing-verse-preview{
  margin-top:2px;
  padding:12px 13px;
  border:1px solid #ddd6fe;
  border-radius:11px;
  background:#fafaff;
}

.sharing-verse-preview-head{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
}

.sharing-verse-preview-head strong{
  color:#5b21b6;
  font-size:11px;
}

.sharing-verse-preview p{
  margin:0 !important;
  color:#475569;
  font-size:11px;
  line-height:1.7;
}

/* 말씀나눔 상세 선택절 */
.sharing-detail-passage{
  display:block !important;
  padding:13px 14px !important;
}

.sharing-detail-passage-head{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
}

.sharing-detail-verse-line{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:11px 12px;
  border-radius:10px;
  background:#fff;
  border:1px solid #e9d5ff;
}

.sharing-detail-verse-number{
  width:25px;
  height:25px;
  flex:0 0 25px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#ede9fe;
  color:#6d28d9;
  font-size:9px;
  font-weight:900;
}

.sharing-detail-verse-line p{
  margin:0 !important;
  color:#334155;
  font-size:12px;
  line-height:1.75;
}

@media(max-width:700px){
  .sharing-passage-selector{
    grid-template-columns:1fr 1fr;
  }
  .sharing-passage-selector label:first-child{
    grid-column:1/-1;
  }
}


/* ===== v30.38 sharing search / permissions / edit / passage fix ===== */
.sharing-toolbar{
  margin-bottom:14px !important;
  padding:12px 14px !important;
}
.sharing-search-form{
  display:flex;
  align-items:center;
  gap:8px;
}
.sharing-search-wrap{
  width:min(560px,100%);
  flex:0 1 560px;
}
.sharing-search-count{
  margin-left:auto;
  color:var(--muted);
  font-size:11px;
  white-space:nowrap;
}
.sharing-search-count strong{color:var(--text)}

.sharing-detail-verses{
  display:grid;
  gap:7px;
}
.sharing-detail-verse-empty{
  padding:11px;
  border:1px dashed #ddd6fe;
  border-radius:9px;
  background:#fff;
  color:#64748b;
  font-size:10px;
}
.sharing-manage-actions{
  display:flex;
  gap:7px;
}

@media(max-width:700px){
  .sharing-search-form{
    align-items:stretch;
    flex-wrap:wrap;
  }
  .sharing-search-wrap{
    flex:1 0 100%;
    width:100%;
  }
  .sharing-search-form>.btn{flex:1}
  .sharing-search-count{
    width:100%;
    margin-left:0;
  }
}


/* ===== v30.39 말씀나눔 다중 절 선택 ===== */
.sharing-passage-selector-two{
  grid-template-columns:minmax(0,1.55fr) minmax(130px,.75fr) !important;
}

.sharing-verse-picker{
  margin-top:2px;
  padding:12px;
  border:1px solid var(--border);
  border-radius:11px;
  background:#fff;
}

.sharing-verse-picker-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:10px;
}

.sharing-verse-picker-head>div:first-child{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.sharing-verse-picker-head b{
  color:#334155;
  font-size:11px;
}

.sharing-verse-picker-head small{
  color:#94a3b8;
  font-size:9px;
}

.sharing-verse-check-grid{
  display:grid;
  grid-template-columns:repeat(8,minmax(0,1fr));
  gap:6px;
  max-height:190px;
  overflow:auto;
  padding-right:2px;
}

.sharing-verse-check{
  position:relative;
  min-width:0;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--border);
  border-radius:8px;
  background:#f8fafc;
  cursor:pointer;
  user-select:none;
}

.sharing-verse-check:hover{
  border-color:#c4b5fd;
  background:#fafaff;
}

.sharing-verse-check input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.sharing-verse-check span{
  color:#475569;
  font-size:10px;
  font-weight:800;
}

.sharing-verse-check:has(input:checked){
  border-color:#818cf8;
  background:#eef2ff;
  box-shadow:inset 0 0 0 1px rgba(99,102,241,.08);
}

.sharing-verse-check:has(input:checked) span{
  color:#4338ca;
}

.sharing-multi-verse-preview{
  display:grid;
  gap:6px;
  max-height:220px;
  overflow:auto;
}

.sharing-preview-verse{
  display:flex;
  align-items:flex-start;
  gap:9px;
  padding:8px 9px;
  border-radius:9px;
  background:#fff;
}

.sharing-preview-verse>span{
  width:23px;
  height:23px;
  flex:0 0 23px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#ede9fe;
  color:#6d28d9;
  font-size:9px;
  font-weight:900;
}

.sharing-preview-verse p{
  margin:0 !important;
  color:#475569;
  font-size:10px !important;
  line-height:1.65 !important;
}

.sharing-preview-loading{
  padding:9px;
  color:#64748b;
  font-size:10px;
}

@media(max-width:900px){
  .sharing-verse-check-grid{
    grid-template-columns:repeat(6,minmax(0,1fr));
  }
}

@media(max-width:700px){
  .sharing-passage-selector-two{
    grid-template-columns:1fr !important;
  }
  .sharing-verse-picker-head{
    align-items:flex-start;
    flex-direction:column;
  }
  .sharing-verse-picker-head .page-actions{
    width:100%;
  }
  .sharing-verse-picker-head .page-actions .btn{
    flex:1;
  }
  .sharing-verse-check-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
  }
}


/* ===== v30.40 말씀나눔 등록모달 overflow fix ===== */

/* iframe 안의 작성 폼은 모달 viewport 안에서만 커지고, 내용만 세로 스크롤 */
html.itda-modal-child .sharing-compose-form,
body .sharing-compose-form{
  box-sizing:border-box !important;
}

/* 전역 등록 iframe 안에서만 높이를 제한한다 */
html.itda-modal-child .sharing-compose-form{
  width:min(760px,100%) !important;
  height:auto !important;
  max-height:calc(100dvh - 24px) !important;
  margin:12px auto !important;
  padding:16px 20px 18px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain !important;
  scrollbar-gutter:stable;
}

/* 절 목록은 자체 스크롤. 절이 수십/수백 개여도 폼 높이를 계속 밀어내지 않는다. */
html.itda-modal-child .sharing-verse-picker{
  flex:0 0 auto;
  max-height:210px !important;
  overflow:hidden !important;
}

html.itda-modal-child .sharing-verse-check-grid{
  max-height:148px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain !important;
  scrollbar-gutter:stable;
}

/* 여러 절을 고른 경우 본문 미리보기도 자체 스크롤 */
html.itda-modal-child .sharing-verse-preview{
  flex:0 0 auto;
  max-height:190px !important;
  overflow:hidden !important;
}

html.itda-modal-child .sharing-multi-verse-preview{
  max-height:132px !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain !important;
  scrollbar-gutter:stable;
}

/* 제목/본문 선택 영역이 위로 사라져 보이지 않도록 상단 시작 위치 고정 */
html.itda-modal-child .sharing-compose-intro,
html.itda-modal-child .sharing-compose-form>.field{
  flex:0 0 auto;
}

/* 하단 등록 버튼은 스크롤해도 쉽게 접근 가능 */
html.itda-modal-child .sharing-compose-actions{
  position:sticky !important;
  bottom:-18px !important;
  z-index:5;
  margin:0 -20px -18px !important;
  padding:12px 20px 18px !important;
  border-top:1px solid var(--border) !important;
  background:rgba(255,255,255,.97) !important;
  backdrop-filter:blur(8px);
}

@media(max-width:700px){
  html.itda-modal-child .sharing-compose-form{
    max-height:calc(100dvh - 12px) !important;
    margin:6px auto !important;
    padding:12px 12px 14px !important;
  }

  html.itda-modal-child .sharing-compose-actions{
    bottom:-14px !important;
    margin:0 -12px -14px !important;
    padding:10px 12px 14px !important;
  }

  html.itda-modal-child .sharing-verse-check-grid{
    max-height:132px !important;
  }

  html.itda-modal-child .sharing-multi-verse-preview{
    max-height:112px !important;
  }
}


/* ===== v30.41 읽기표 PDF / 관리 모달 ===== */
.bible-plan-modal-foot{
  justify-content:flex-end !important;
  gap:8px !important;
}

.bible-plan-list-table .col-action{
  width:132px !important;
}

.bible-plan-action-buttons,
.bible-admin-plan-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
  white-space:nowrap;
}

.bible-plan-action-buttons .btn,
.bible-admin-plan-actions .btn{
  min-width:48px !important;
}

.bible-plan-pdf-btn{
  min-width:48px !important;
}

#adminPlanDetailModal .modal-body,
#planDetailModal .modal-body{
  padding:18px 20px !important;
}

#adminPlanDetailModal .bible-plan-detail-panel,
#planDetailModal .bible-plan-detail-panel{
  margin-bottom:0 !important;
}

#adminPlanDetailModal .table-wrap,
#planDetailModal .table-wrap{
  max-height:58vh;
  overflow:auto !important;
}

@media(max-width:700px){
  .bible-plan-list-table .col-action{
    width:118px !important;
  }
  .bible-plan-action-buttons,
  .bible-admin-plan-actions{
    gap:4px;
  }
  #adminPlanDetailModal .modal-body,
  #planDetailModal .modal-body{
    padding:12px !important;
  }
}


/* ===== v30.42 PDF 다운로드 오류 방지 ===== */
.btn.is-loading,
button.is-loading{
  cursor:wait !important;
  opacity:.72 !important;
  pointer-events:none !important;
}

.bible-plan-pdf-btn{
  white-space:nowrap !important;
}


/* ===== v30.46 성경읽기 관리 Excel + 읽기표 본문 모달 ===== */
#planDayTextModal .modal{
  max-width:1060px !important;
}

#planDayTextModal .modal-body{
  padding:18px 20px !important;
}

#planDayTextModal .today-word-card{
  margin:0 !important;
}

#planDayTextModal .bible-text-modal-box{
  max-height:62vh;
  overflow:auto;
  padding-right:4px;
}

#planDayTextModal .verse-line{
  display:flex !important;
  align-items:flex-start !important;
  gap:10px !important;
  width:100% !important;
  min-width:0 !important;
  padding:10px 12px !important;
  border:1px solid #e0e7ff !important;
  border-radius:12px !important;
  background:#fff !important;
}

#planDayTextModal .verse-num{
  flex:0 0 24px !important;
  width:24px !important;
  min-width:24px !important;
  height:24px !important;
  display:grid !important;
  place-items:center !important;
}

#planDayTextModal .verse-text{
  flex:1 1 auto !important;
  width:auto !important;
  min-width:0 !important;
  height:auto !important;
  display:block !important;
  color:#334155 !important;
  font-size:14px !important;
  font-weight:500 !important;
  line-height:1.8 !important;
  white-space:normal !important;
  word-break:keep-all !important;
  overflow-wrap:break-word !important;
}

@media(max-width:700px){
  #planDayTextModal .modal-body{
    padding:12px !important;
  }
  #planDayTextModal .bible-text-modal-box{
    max-height:65vh;
  }
  #planDayTextModal .verse-text{
    font-size:13px !important;
  }
}


/* ===== v30.47 홈 말씀나눔 / 로고 확대 / 새 접속 인트로 ===== */

/* 상단 ITDA 로고가 원본 이미지의 여백 때문에 작아 보이지 않도록 실제 표시 영역 확대 */
.original-itda-brand{
  min-width:94px !important;
  width:94px !important;
  height:60px !important;
  padding:0 !important;
  overflow:visible !important;
  flex:0 0 94px !important;
}

.original-itda-brand img{
  width:88px !important;
  height:58px !important;
  max-width:none !important;
  object-fit:contain !important;
  display:block !important;
}

/* 홈 말씀나눔 바로가기 */
.home-sharing-quick{
  position:relative;
  text-decoration:none !important;
}

.home-sharing-quick .quick-icon{
  background:#f5f3ff !important;
  color:#7c3aed !important;
}

.home-sharing-new{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  align-self:flex-start !important;
  min-height:25px !important;
  padding:0 9px !important;
  border-radius:999px !important;
  background:#f5f3ff !important;
  border:1px solid #ddd6fe !important;
  color:#6d28d9 !important;
  font-size:11px !important;
  line-height:1 !important;
  font-weight:900 !important;
  letter-spacing:.01em !important;
}

/* 새 진입 인트로는 기존 로그인 애니메이션과 같은 화면을 재사용 */
.original-login-intro{
  will-change:opacity,visibility !important;
}

@media(max-width:900px){
  .original-itda-brand{
    min-width:82px !important;
    width:82px !important;
    flex-basis:82px !important;
  }
  .original-itda-brand img{
    width:76px !important;
    height:54px !important;
  }
}

@media(max-width:700px){
  .original-itda-brand{
    min-width:72px !important;
    width:72px !important;
    height:56px !important;
    flex-basis:72px !important;
  }
  .original-itda-brand img{
    width:68px !important;
    height:52px !important;
  }
}


/* ===== v30.48 로고 50% 확대 / 말씀나눔 중앙 / 투표·협업 ===== */

/* v30.47 대비 정확히 약 1.5배 */
.original-itda-brand{
  min-width:141px !important;
  width:141px !important;
  height:90px !important;
  flex:0 0 141px !important;
}

.original-itda-brand img{
  width:132px !important;
  height:87px !important;
  max-width:none !important;
  object-fit:contain !important;
}

/* 말씀나눔 홈 카드 가운데 정렬 */
.home-sharing-quick{
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
}

.home-sharing-quick .quick-icon,
.home-sharing-quick strong,
.home-sharing-quick .home-sharing-new{
  align-self:center !important;
  text-align:center !important;
}

/* 투표 */
.poll-list-grid{
  display:grid;
  gap:10px;
}

.poll-list-body{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}

.poll-card-copy{
  flex:1 1 420px;
  min-width:0;
}

.poll-card-copy h3{
  margin:8px 0 4px;
  color:#0f172a;
}

.poll-card-badges{
  display:flex;
  gap:5px;
  flex-wrap:wrap;
}

.poll-card-actions{
  justify-content:flex-end;
}

.poll-choice-list{
  display:grid;
  gap:8px;
}

.poll-choice-option{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:52px;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
  cursor:pointer;
  transition:.16s ease;
}

.poll-choice-option:hover{
  border-color:#a5b4fc;
  background:#fafaff;
}

.poll-choice-option input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.poll-choice-radio{
  width:20px;
  height:20px;
  flex:0 0 20px;
  border:2px solid #cbd5e1;
  border-radius:50%;
  position:relative;
}

.poll-choice-option:has(input:checked){
  border-color:#818cf8;
  background:#eef2ff;
}

.poll-choice-option:has(input:checked) .poll-choice-radio{
  border-color:#6366f1;
}

.poll-choice-option:has(input:checked) .poll-choice-radio:after{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:50%;
  background:#6366f1;
}

.poll-modal-submit{
  display:flex;
  justify-content:flex-end;
  margin-top:14px;
}

.poll-result-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:11px 13px;
  margin-bottom:12px;
  border:1px solid #e0e7ff;
  border-radius:12px;
  background:#f8faff;
}

.poll-result-summary span{
  color:#64748b;
  font-size:11px;
}

.poll-result-summary strong{
  color:#4338ca;
  font-size:18px;
}

.poll-result-list{
  display:grid;
  gap:14px;
}

.poll-result-row{
  display:grid;
  gap:7px;
}

.poll-result-label{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}

.poll-result-label span{
  color:#64748b;
  font-size:11px;
  white-space:nowrap;
}

.poll-result-track{
  height:12px;
  overflow:hidden;
  border-radius:999px;
  background:#eef2f7;
}

.poll-result-track i{
  display:block;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#4f46e5,#7c3aed);
}

.poll-edit-choice-list{
  display:grid;
  gap:7px;
  margin-bottom:8px;
}

.poll-edit-choice-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 54px 34px;
  gap:7px;
  align-items:center;
}

.poll-choice-votes{
  color:#64748b;
  font-size:10px;
  text-align:center;
  white-space:nowrap;
}

.poll-choice-lock{
  width:34px;
  text-align:center;
  opacity:.65;
}

.poll-setting-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:16px;
}

.poll-setting-option{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:12px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#f8fafc;
}

.poll-setting-option span{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.poll-setting-option small{
  color:#64748b;
  font-size:9px;
}

/* 보고 템플릿 안내 */
.report-template-label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:7px;
}

.report-template-label small{
  color:#94a3b8;
  font-size:9px;
}

.template-notice{
  display:flex;
  gap:10px;
  align-items:flex-start;
  padding:10px 12px;
  margin-bottom:9px;
  border:1px solid #ddd6fe;
  border-radius:11px;
  background:#faf5ff;
}

.template-notice>span{
  font-size:18px;
}

.template-notice>div{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.template-notice b{
  color:#5b21b6;
  font-size:10px;
}

.template-notice small{
  color:#7c3aed;
  font-size:9px;
  line-height:1.5;
}

/* 광고신청 */
.ad-request-grid{
  display:grid;
  gap:10px;
}

.ad-request-card.deadline-soon{
  border-color:#fbbf24 !important;
}

.ad-request-card-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:14px;
}

.ad-request-card-head h3{
  margin:8px 0 4px;
}

.ad-request-badges{
  display:flex;
  gap:5px;
}

.ad-request-content{
  margin-top:12px;
  padding:12px 13px;
  border-radius:11px;
  background:#f8fafc;
  color:#475569;
  font-size:12px;
  line-height:1.7;
  white-space:pre-wrap;
}

.ad-compose-form{
  width:min(760px,100%);
  margin:0 auto;
  padding:18px 20px 20px;
  box-sizing:border-box;
}

.ad-compose-intro{
  display:flex;
  gap:12px;
  align-items:center;
  padding:12px 14px;
  margin-bottom:14px;
  border:1px solid #e0e7ff;
  border-radius:14px;
  background:#f8faff;
}

.ad-compose-icon{
  width:42px;
  height:42px;
  flex:0 0 42px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:#eef2ff;
  font-size:20px;
}

.ad-compose-intro>div:last-child{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.ad-compose-intro strong{
  color:#1e293b;
  font-size:14px;
}

.ad-compose-intro p{
  margin:0;
  color:#64748b;
  font-size:10px;
}

.ad-compose-textarea{
  min-height:150px !important;
  resize:vertical;
}

.ad-selected-files{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:8px;
}

.ad-compose-actions{
  position:sticky;
  bottom:0;
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin:16px -20px -20px;
  padding:12px 20px 18px;
  border-top:1px solid var(--border);
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(8px);
}

/* 협업 첫 진입 애니메이션이 눈에 자연스럽게 보이도록 */
.page-shell.app-enter{
  transform-origin:50% 0;
}

@media(max-width:900px){
  .original-itda-brand{
    min-width:123px !important;
    width:123px !important;
    height:84px !important;
    flex-basis:123px !important;
  }

  .original-itda-brand img{
    width:114px !important;
    height:81px !important;
  }
}

@media(max-width:700px){
  .original-itda-brand{
    min-width:108px !important;
    width:108px !important;
    height:78px !important;
    flex-basis:108px !important;
  }

  .original-itda-brand img{
    width:102px !important;
    height:78px !important;
  }

  .poll-list-body{
    align-items:stretch;
  }

  .poll-card-actions{
    width:100%;
    justify-content:flex-start;
  }

  .poll-edit-choice-row{
    grid-template-columns:minmax(0,1fr) 48px 32px;
  }

  .poll-setting-grid{
    grid-template-columns:1fr;
  }

  .ad-request-card-head{
    flex-direction:column;
  }

  .ad-compose-form{
    padding:12px;
  }

  .ad-compose-actions{
    margin:14px -12px -12px;
    padding:10px 12px 14px;
  }
}


/* ===== v30.49 DEMO v24 exact font + collaboration parity ===== */
:root{--font:'Pretendard Variable','Pretendard','Noto Sans KR',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif!important;}
html,body{font-family:var(--font)!important;line-height:normal!important;}
button,input,select,textarea{font:inherit!important;}
h1{border-bottom:0!important;padding-bottom:0!important;}

/* 협업 상위 메뉴 /collab 진입 때만 확실하게 보이는 데모형 enter */
.collab-enter{animation:collabEnter .62s cubic-bezier(.22,.61,.36,1) both!important;}
@keyframes collabEnter{from{opacity:0;transform:translateY(13px)}to{opacity:1;transform:none}}

/* reports/minutes */
.report-search-toolbar .toolbar-left{flex-wrap:wrap}
.range-sep{font-size:11px;color:var(--muted)}
.read-count{display:inline-flex;align-items:center;height:28px;padding:0 10px;border-radius:999px;font-size:11px;font-weight:850}
.read-count.has-unread{background:var(--warningSoft);color:var(--warning)}
.read-count.all-read{background:var(--successSoft);color:var(--success)}
.document-detail{max-width:900px;margin:0 auto 22px;padding:26px 28px;border:1px solid var(--border);border-radius:14px;background:#fff;line-height:1.78;color:#1e293b}
.reader-section{max-width:900px;margin:0 auto 12px}
.reader-head{margin-bottom:12px}.reader-head h3{margin-bottom:4px}.reader-head p{margin:0;color:var(--muted);font-size:12px}
.reader-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.reader-box{border:1px solid var(--border);border-radius:13px;overflow:hidden;background:#fff}.reader-box.read{border-color:#bbf7d0}.reader-box.unread{border-color:#fed7aa}
.reader-box-title{padding:11px 13px;border-bottom:1px solid var(--border);font-size:12px;font-weight:850}.reader-box.read .reader-box-title{background:var(--successSoft);color:var(--success)}.reader-box.unread .reader-box-title{background:var(--warningSoft);color:var(--warning)}
.reader-list{padding:12px;display:flex;flex-wrap:wrap;gap:8px}.reader-chip{min-width:145px;display:flex;align-items:center;gap:8px;border:1px solid var(--border);background:#fff;border-radius:10px;padding:7px 9px}.reader-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--primarySoft);color:var(--primary);font-size:11px;font-weight:900}.reader-chip>span:last-child{display:flex;flex-direction:column;line-height:1.2}.reader-chip b{font-size:12px}.reader-chip small{font-size:10px;color:var(--muted);margin-top:2px}.reader-empty{font-size:12px;color:var(--muted);padding:6px 2px}
.detail-subsection{max-width:900px;margin:0 auto 12px;padding:14px 16px;border:1px solid var(--border);border-radius:13px;background:#f8fafc}
.collab-comment-section{background:#fff}

/* draft */
.draft-my-turn-row{background:#fffdf4!important}.my-turn-dot{display:inline-flex;margin-left:8px;height:23px;align-items:center;padding:0 8px;border-radius:999px;background:#fff7ed;color:#d97706;font-size:10px;font-weight:850}
.draft-flow-help{display:flex;gap:12px;margin-top:16px;padding:15px 17px;border:1px solid #c7d2fe;border-radius:14px;background:#f8faff}.draft-flow-help>span{font-size:22px}.draft-flow-help strong{font-size:12px;color:#3730a3}.draft-flow-help p{margin:4px 0 0;color:#64748b;font-size:11px;line-height:1.55}
.draft-approval-section{margin-bottom:14px;padding:14px;border:1px solid #c7d2fe;background:#f8faff;border-radius:14px}.draft-approval-line{display:grid;gap:8px}.approval-line-item{display:flex;align-items:center;gap:9px;min-height:55px;padding:8px 10px;border:1px solid var(--border);border-radius:11px;background:#fff}.approval-line-item.approved{border-color:#bbf7d0;background:#f7fff9}.approval-line-item.rejected{border-color:#fecaca;background:#fff8f8}.approval-step-num{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#94a3b8;color:#fff;font-size:10px;font-weight:900;flex:0 0 auto}.approval-line-item.approved .approval-step-num{background:var(--success)}.approval-line-item.rejected .approval-step-num{background:var(--danger)}.approval-person{display:flex;flex-direction:column;gap:2px;flex:1}.approval-person b{font-size:12px}.approval-person small{font-size:10px;color:var(--muted)}.approval-action-meta{display:flex;flex-direction:column;align-items:flex-end;color:#64748b;font-size:10px;max-width:260px}.approval-action-meta small{margin-top:2px;color:#334155}

/* prep: copied from demo geometry */
.prep-layout{display:grid!important;grid-template-columns:350px minmax(0,1fr)!important;gap:14px!important}.prep-event-list{display:grid!important}.prep-event-item{min-height:70px!important;border:0!important;border-bottom:1px solid #eef2f7!important;background:#fff!important;padding:12px 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;text-align:left!important}.prep-event-item:hover{background:#f8fafc!important}.prep-event-item.active{background:var(--primarySoft)!important}.prep-event-item span:first-child{display:flex!important;flex-direction:column!important;gap:4px!important}.prep-event-item b{font-size:12px!important}.prep-event-item small{font-size:10px!important;color:var(--muted)!important}.prep-right{display:flex!important;flex-direction:column!important;align-items:flex-end!important;gap:3px!important}.prep-right em{font-style:normal!important;color:var(--danger)!important;font-size:9px!important;font-weight:850!important}.prep-overall{margin:14px 0!important}.prep-overall>div:first-child{display:flex!important;justify-content:space-between!important;margin-bottom:7px!important;font-size:11px!important}.task-stack{display:grid!important;gap:10px!important}.prep-task{border:1px solid var(--border)!important;border-radius:12px!important;padding:12px!important;background:#fff!important}.prep-task-head{display:flex!important;justify-content:space-between!important;gap:12px!important;align-items:flex-start!important}.prep-task-head>div:first-child{display:flex!important;flex-direction:column!important;gap:3px!important}.prep-task-head b{font-size:12px!important}.prep-task-head small{font-size:10px!important;color:var(--muted)!important}.dual-progress{height:10px!important;background:#eef2f7!important;border-radius:99px!important;overflow:hidden!important;position:relative!important;margin:11px 0 7px!important}.dual-progress i,.dual-progress b{position:absolute!important;left:0!important;top:0!important;height:100%!important;display:block!important}.dual-progress i{background:#fed7aa!important;opacity:.7!important}.dual-progress b{background:var(--success)!important}.prep-progress-meta{display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:wrap!important;color:var(--muted)!important;font-size:10px!important}.prep-progress-meta em{font-style:normal!important;color:var(--danger)!important;font-weight:800!important}.prep-progress-meta label{margin-left:auto!important;display:flex!important;gap:6px!important;align-items:center!important}.subtask-list{display:grid!important;gap:4px!important;margin-top:8px!important}.subtask-row{display:flex!important;justify-content:space-between!important;padding:7px 9px!important;border-radius:8px!important;background:#f8fafc!important;font-size:10px!important}.subtask-main{display:flex!important;flex-direction:column!important;gap:2px!important;min-width:180px!important;flex:1!important}.subtask-main small{font-size:8px!important;color:var(--muted)!important}.subtask-progress-control{display:grid!important;grid-template-columns:minmax(100px,1fr) 40px 34px 42px!important;gap:6px!important;align-items:center!important;min-width:300px!important}.subtask-progress-control b{font-size:10px!important;text-align:right!important;color:var(--primary)!important}.subtask-progress-control em{font-style:normal!important;font-size:8px!important;color:var(--danger)!important;font-weight:800!important}.mini-edit-btn{height:26px!important;border:1px solid var(--border)!important;border-radius:6px!important;background:#fff!important;font-size:9px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;color:#475569!important;text-decoration:none!important}

/* visit/car calendars */
.calendar-layout{display:grid!important;grid-template-columns:minmax(0,1.7fr) minmax(280px,.55fr)!important;gap:16px!important}.calendar-feature .day{min-height:118px!important}.day-events{display:grid!important;gap:5px!important;margin-top:7px!important}.calendar-feature .cal-event{width:100%!important;height:auto!important;min-height:25px!important;border:0!important;text-align:left!important;padding:5px 6px!important;white-space:normal!important;line-height:1.25!important}.visit-cal-event{background:#f0fdf4!important;color:#15803d!important}.car-cal-event{background:#fff7ed!important;color:#c2410c!important}.calendar-side-list{display:grid!important;gap:8px!important;padding:12px!important}.side-event{border:1px solid var(--border)!important;background:#fff!important;border-radius:11px!important;padding:10px!important;text-align:left!important;display:flex!important;flex-direction:column!important;gap:3px!important}.side-event:hover{border-color:#93c5fd!important;background:#f8fbff!important}.side-event time{font-size:10px!important;color:var(--primary)!important;font-weight:800!important}.side-event strong{font-size:12px!important}.side-event small{font-size:10px!important;color:var(--muted)!important}.calendar-empty{background:#fbfdff!important}.vehicle-summary{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:12px!important;margin-bottom:14px!important}.vehicle-card{min-height:74px!important;border:1px solid var(--border)!important;background:#fff!important;border-radius:13px!important;padding:13px!important;display:flex!important;align-items:center!important;gap:11px!important}.vehicle-card>span{font-size:24px!important}.vehicle-card div{display:flex!important;flex-direction:column!important;gap:3px!important;flex:1!important}.vehicle-card b{font-size:12px!important}.vehicle-card small{font-size:10px!important;color:var(--muted)!important}.vehicle-card em{font-style:normal!important;font-size:10px!important;color:var(--primary)!important;font-weight:800!important}

/* ad */
.ad-grid{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:14px!important}.ad-card{border:1px solid var(--border)!important;background:#fff!important;border-radius:14px!important;padding:16px!important;box-shadow:var(--shadow)!important}.ad-card-top{display:flex!important;justify-content:space-between!important;gap:8px!important}.ad-card h3{margin:13px 0 7px!important}.ad-card p{color:#475569!important;font-size:12px!important;line-height:1.65!important;white-space:pre-wrap!important}.ad-meta{font-size:10px!important;color:var(--muted)!important;padding-top:10px!important;border-top:1px solid #eef2f7!important}.compact-attachments{margin-top:9px!important}.compact-attachments .attachment-card{padding:7px!important}.ad-deadline-soon{border-color:#fecaca!important;box-shadow:0 5px 18px rgba(220,38,38,.07)!important}.deadline-warning{margin-top:11px!important;padding:9px 10px!important;border-radius:9px!important;background:var(--dangerSoft)!important;color:var(--danger)!important;font-size:10px!important;font-weight:750!important}.table-action{border:0;background:transparent;color:var(--primary);font-size:10px;font-weight:800;padding:4px 5px;border-radius:6px}.table-action:hover{background:var(--primarySoft)}

@media(max-width:1000px){.prep-layout{grid-template-columns:1fr!important}.ad-grid{grid-template-columns:repeat(2,1fr)!important}.calendar-layout{grid-template-columns:1fr!important}}
@media(max-width:700px){.reader-columns{grid-template-columns:1fr!important}.ad-grid,.vehicle-summary{grid-template-columns:1fr!important}.prep-task-head{flex-direction:column!important}.prep-progress-meta label{margin-left:0!important;width:100%!important}.prep-progress-meta input{flex:1!important}.subtask-progress-row{display:block!important}.subtask-progress-control{min-width:0!important;margin-top:7px!important;grid-template-columns:minmax(90px,1fr) 40px 34px 42px!important}.document-detail{padding:18px!important}.calendar-feature{min-width:700px!important}.calendar-layout>.panel:first-child{overflow:auto!important}}
\n\n/* ===== v30.49 final demo parity corrections ===== */\nhtml,body{font-family:'Pretendard Variable','Pretendard','Noto Sans KR',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif!important;font-size:14px!important;}\nbody{padding:0!important;display:block!important;place-items:initial!important;color:var(--text)!important;background:var(--bg)!important;}\nbutton,input,select,textarea{font-family:inherit!important;font-size:inherit;}\n.reader-list.permission-list{display:flex!important;flex-wrap:wrap!important;gap:6px!important;padding:0!important;}\n.reader-status-card{min-width:190px!important;display:inline-flex!important;align-items:flex-start!important;gap:8px!important;border:1px solid var(--border)!important;border-radius:10px!important;padding:8px 10px!important;margin:3px!important;background:#fff!important;}\n.reader-status-card.is-read{border-color:#86efac!important;background:#f0fdf4!important}.reader-status-card.is-unread{border-color:#e2e8f0!important;background:#f8fafc!important;opacity:.86!important}\n.reader-status-card .reader-info{display:flex!important;flex-direction:column!important;gap:1px!important}.reader-status-card .reader-state-text{margin-top:3px!important;font-size:9px!important;font-weight:800!important}.reader-status-card.is-read .reader-state-text{color:#15803d!important}.reader-status-card.is-unread .reader-state-text{color:#94a3b8!important}\n.finance-table{width:100%;border-collapse:collapse;min-width:650px}.finance-table th,.finance-table td{border:1px solid var(--border);padding:8px;text-align:left}.finance-table th{background:#f8fafc}.finance-table tfoot th{font-weight:850}\n.linked-count-btn{cursor:pointer!important}.linked-count-btn:hover{border-color:#93c5fd!important;background:#f8fbff!important}\n.collab-enter{animation:collabEnter .62s cubic-bezier(.22,.61,.36,1) both!important;will-change:opacity,transform;}\n@media(max-width:700px){\n  .calendar-feature{min-width:0!important}\n  .calendar-feature .day{min-height:78px!important;padding:6px!important}\n  .calendar-feature .cal-event{font-size:0!important;width:8px!important;height:8px!important;min-height:8px!important;padding:0!important;border-radius:50%!important;margin-top:2px!important}\n  .reader-status-card{min-width:calc(50% - 8px)!important;width:auto!important}\n}\n

/* ===== v30.50 보고/기안/회의록 사용자 선택 모달 ===== */

.user-selector-backdrop{
  padding:24px !important;
}

.user-selector-modal{
  width:min(840px,100%) !important;
  max-width:840px !important;
  max-height:90vh !important;
}

.user-selector-head{
  padding:19px 22px 17px !important;
  background:linear-gradient(180deg,#fff,#fbfdff);
}

.user-selector-head .eyebrow{
  margin-bottom:5px !important;
}

.user-selector-head h2{
  margin:0 0 5px !important;
  font-size:20px !important;
}

.user-selector-head .page-desc{
  font-size:11px !important;
}

.user-selector-body{
  padding:18px 20px 16px !important;
  background:#f8fafc !important;
}

.selector-toolbar{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) 190px !important;
  gap:9px !important;
  margin:0 0 10px !important;
}

.selector-search-wrap{
  width:100% !important;
  min-width:0 !important;
  background:#fff !important;
}

.selector-org-control{
  width:100% !important;
  min-width:0 !important;
  background:#fff !important;
}

.selector-actionbar{
  min-height:43px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-bottom:10px;
  padding:8px 10px;
  border:1px solid #e2e8f0;
  border-radius:11px;
  background:#fff;
}

.selector-meta{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  padding:0 !important;
  color:#64748b !important;
  font-size:10px !important;
}

.selector-meta b{
  color:#2563eb;
  font-size:11px;
}

.selector-meta-divider{
  width:1px;
  height:14px;
  background:#e2e8f0;
}

.selector-action-buttons{
  display:flex;
  gap:5px;
  align-items:center;
  flex-wrap:wrap;
}

.selector-filter-all{
  border-color:#bfdbfe !important;
  background:#eff6ff !important;
  color:#1d4ed8 !important;
  font-weight:850 !important;
}

.selector-filter-all:hover{
  background:#dbeafe !important;
}

.selector-filter-all span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:27px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  background:#fff;
  color:#2563eb;
  font-size:9px;
}

.selector-list{
  max-height:350px;
  overflow:auto !important;
  border:1px solid #dfe7f1 !important;
  border-radius:13px !important;
  background:#fff !important;
  box-shadow:0 1px 3px rgba(15,23,42,.025);
  scrollbar-gutter:stable;
}

.selector-row{
  min-height:62px !important;
  display:flex !important;
  align-items:center !important;
  gap:11px !important;
  padding:9px 12px !important;
  border-bottom:1px solid #eef2f7 !important;
  background:#fff !important;
  cursor:pointer !important;
  transition:background .14s ease,border-color .14s ease !important;
}

.selector-row:last-child{
  border-bottom:0 !important;
}

.selector-row:hover{
  background:#f8fbff !important;
}

.selector-row.is-selected{
  background:#f5f8ff !important;
}

.selector-row input{
  width:17px !important;
  height:17px !important;
  accent-color:#2563eb !important;
  flex:0 0 17px;
}

.selector-user-avatar{
  width:35px !important;
  height:35px !important;
  flex:0 0 35px !important;
  display:grid !important;
  place-items:center !important;
  border-radius:50% !important;
  background:linear-gradient(135deg,#dbeafe,#e0e7ff) !important;
  color:#3730a3 !important;
  font-size:11px !important;
  font-weight:900 !important;
}

.selector-user-main{
  min-width:0;
  flex:1;
  display:flex !important;
  flex-direction:column !important;
  gap:3px !important;
}

.selector-user-main b{
  color:#0f172a;
  font-size:12px !important;
}

.selector-user-main small{
  display:flex !important;
  align-items:center !important;
  flex-wrap:wrap;
  gap:5px;
  color:#64748b !important;
  font-size:9px !important;
}

.selector-user-main small i{
  width:3px;
  height:3px;
  border-radius:50%;
  background:#cbd5e1;
}

.selector-state{
  min-width:48px;
  text-align:right;
  color:#94a3b8 !important;
  font-size:9px !important;
  font-weight:800 !important;
}

.selector-row.is-selected .selector-state{
  color:#16a34a !important;
}

.selector-loading{
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:#64748b;
  font-size:10px;
}

.selector-spinner,
.selector-mini-spinner{
  display:inline-block;
  width:16px;
  height:16px;
  border:2px solid #dbeafe;
  border-top-color:#2563eb;
  border-radius:50%;
  animation:selectorSpin .7s linear infinite;
}

.selector-mini-spinner{
  width:12px;
  height:12px;
}

@keyframes selectorSpin{
  to{transform:rotate(360deg)}
}

.selector-pagination{
  min-height:46px;
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  gap:9px !important;
  padding:10px 0 8px !important;
}

.selector-page-btn{
  width:32px;
  height:32px;
  border:1px solid #e2e8f0;
  border-radius:9px;
  background:#fff;
  color:#475569;
  font-size:18px;
}

.selector-page-btn:hover:not(:disabled){
  border-color:#93c5fd;
  background:#eff6ff;
  color:#2563eb;
}

.selector-page-btn:disabled{
  opacity:.35;
  cursor:not-allowed;
}

.selector-page-label{
  min-width:64px !important;
  text-align:center;
  color:#64748b !important;
  font-size:10px !important;
}

.selector-page-label b{
  color:#2563eb;
}

.selector-chosen-wrap{
  margin-top:1px !important;
  padding:13px 14px !important;
  border:1px solid #dbe5ee !important;
  border-radius:13px !important;
  background:#fff !important;
}

.selector-chosen-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:9px;
}

.selector-chosen-head>div{
  display:flex;
  align-items:baseline;
  gap:7px;
}

.selector-chosen-head b{
  font-size:11px;
  color:#334155;
}

.selector-chosen-head small{
  color:#64748b;
  font-size:9px;
}

.selector-chosen-head strong{
  color:#2563eb;
}

.selector-chosen{
  min-height:36px !important;
  max-height:126px;
  overflow:auto;
  display:flex !important;
  flex-wrap:wrap !important;
  align-content:flex-start;
  gap:6px !important;
}

.chosen-chip{
  min-height:34px !important;
  height:auto !important;
  display:inline-grid !important;
  grid-template-columns:25px auto 20px;
  align-items:center;
  gap:6px !important;
  padding:4px 5px 4px 6px !important;
  border:1px solid #dbeafe !important;
  border-radius:10px !important;
  background:#f8fbff !important;
  color:#1e3a8a !important;
}

.chosen-avatar{
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#dbeafe;
  color:#1d4ed8;
  font-size:9px;
  font-weight:900;
}

.chosen-copy{
  display:flex;
  flex-direction:column;
  line-height:1.15;
}

.chosen-copy b{
  font-size:10px;
  color:#1e293b;
}

.chosen-copy small{
  margin-top:2px;
  font-size:8px;
  color:#64748b;
}

.chosen-chip button{
  width:20px !important;
  height:20px !important;
  display:grid;
  place-items:center;
  padding:0 !important;
  border:0 !important;
  border-radius:50% !important;
  background:transparent !important;
  color:#64748b !important;
  font-size:14px;
}

.chosen-chip button:hover{
  background:#e0e7ff !important;
  color:#3730a3 !important;
}

.selector-chosen-empty{
  width:100%;
  min-height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#94a3b8;
  font-size:10px;
  border:1px dashed #dbe5ee;
  border-radius:9px;
  background:#fbfdff;
}

.user-selector-foot{
  padding:13px 20px 15px !important;
  background:#fff !important;
}

.selected-summary-inner{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.selected-summary-chips{
  display:flex;
  align-items:center;
  gap:5px;
  flex-wrap:wrap;
}

.selected-summary{
  min-height:46px !important;
}

.selection-count{
  margin-right:0 !important;
  color:#64748b;
  font-size:10px;
}

.selection-count b{
  color:#2563eb !important;
}

.selected-person,
.selected-more{
  height:27px !important;
  border:1px solid #e2e8f0;
  background:#f8fafc !important;
}

.selected-more{
  border-color:#bfdbfe;
  background:#eff6ff !important;
}

@media(max-width:700px){
  .user-selector-backdrop{
    padding:8px !important;
    align-items:flex-end !important;
  }

  .user-selector-modal{
    max-height:94vh !important;
    border-radius:16px 16px 0 0 !important;
  }

  .user-selector-body{
    padding:14px 12px !important;
  }

  .selector-toolbar{
    grid-template-columns:1fr !important;
  }

  .selector-actionbar{
    align-items:stretch;
    flex-direction:column;
  }

  .selector-action-buttons{
    width:100%;
  }

  .selector-action-buttons .btn{
    flex:1;
  }

  .selector-list{
    max-height:38vh;
  }

  .selector-chosen-head{
    align-items:flex-start;
    flex-direction:column;
  }

  .selector-chosen-head .help{
    display:none;
  }

  .chosen-chip{
    max-width:100%;
  }
}


/* ===== v30.51 전자결재 등록 동작 / 에디터 / 헤더 간격 ===== */

/* 큰 로고 크기는 유지하고 메뉴와의 여백만 줄인다. */
.topbar{
  gap:8px !important;
}

.original-itda-brand{
  margin-right:-5px !important;
}

/* 기안 내용 템플릿 제목 기본 크기 */
#contentArea .ck-content h2,
#contentArea .ck-editor__editable h2{
  font-size:16px !important;
  line-height:1.55 !important;
  font-weight:800 !important;
  margin:16px 0 8px !important;
  letter-spacing:-.2px !important;
}

#contentArea .ck-content h2:first-child,
#contentArea .ck-editor__editable h2:first-child{
  margin-top:2px !important;
}

/* 결재선 순서 */
.draft-approver-order-row{
  min-height:54px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:11px;
  background:#fff;
}

.draft-approver-empty{
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px dashed var(--border);
  border-radius:10px;
  background:#f8fafc;
  color:#94a3b8;
  font-size:10px;
}

/* 수입/지출 항목 입력 */
#ioArea .data-wrap{
  border:1px solid var(--border);
  border-radius:11px;
  overflow:auto;
  background:#fff;
}

#ioArea .data-table{
  min-width:620px;
}

#ioArea .data-table th:last-child,
#ioArea .data-table td:last-child{
  width:74px;
  text-align:center;
}

#ioArea .data-table input{
  width:100%;
  min-width:0;
}

#addIoBtn{
  margin-top:9px;
}

@media(max-width:1050px){
  .topbar{
    gap:6px !important;
  }
}

@media(max-width:700px){
  .original-itda-brand{
    margin-right:-3px !important;
  }
}


/* ===== v30.52 협업 pagination / 기안 상세 정리 ===== */

/* 협업 공통 페이지 처리 */
.collab-pagination-wrap{
  min-height:58px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:14px;
  margin:13px 0 18px;
  padding:8px 10px 8px 14px;
  border:1px solid #e2e8f0;
  border-radius:13px;
  background:#fff;
  box-shadow:0 1px 4px rgba(15,23,42,.025);
}

.collab-pagination-info{
  display:flex;
  align-items:center;
  gap:8px;
  color:#94a3b8;
  font-size:10px;
}

.collab-pagination-info strong{
  color:#334155;
  font-size:11px;
}

.collab-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

.collab-page-numbers{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
}

.collab-page-numbers a,
.collab-page-numbers>span:not(.collab-page-ellipsis){
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:#64748b;
  text-decoration:none;
  font-size:11px;
  font-weight:750;
  transition:.14s ease;
}

.collab-page-numbers a:hover{
  border-color:#dbeafe;
  background:#eff6ff;
  color:#2563eb;
}

.collab-page-numbers>span.active{
  border-color:#2563eb;
  background:#2563eb;
  color:#fff;
  box-shadow:0 3px 10px rgba(37,99,235,.18);
}

.collab-page-ellipsis{
  width:22px;
  text-align:center;
  color:#94a3b8;
}

.collab-page-edge{
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:0 10px;
  border:1px solid #e2e8f0;
  border-radius:9px;
  background:#fff;
  color:#475569;
  text-decoration:none;
  font-size:10px;
  font-weight:750;
  white-space:nowrap;
}

.collab-page-edge:hover:not(.disabled){
  border-color:#bfdbfe;
  background:#eff6ff;
  color:#2563eb;
}

.collab-page-edge span{
  font-size:16px;
  line-height:1;
}

.collab-page-edge.disabled{
  opacity:.35;
  cursor:not-allowed;
}

.collab-page-status{
  justify-self:end;
  color:#94a3b8;
  font-size:10px;
}

.collab-page-status b{
  color:#2563eb;
}

/* 기안 상세 전체 폭 / 표 체계 */
.draft-detail-fragment{
  width:100%;
  max-width:1050px;
  margin:0 auto;
}

.draft-detail-section,
.draft-approval-section,
.draft-document-detail{
  width:100%;
  max-width:none !important;
  margin:0 0 14px !important;
}

.draft-document-detail{
  box-sizing:border-box;
}

.draft-detail-table-wrap{
  width:100%;
  overflow:auto;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#fff;
}

.draft-detail-table{
  width:100% !important;
  min-width:620px !important;
  margin:0 !important;
  border-collapse:collapse !important;
}

.draft-detail-table th,
.draft-detail-table td,
.draft-document-detail table th,
.draft-document-detail table td{
  height:46px !important;
  padding:9px 13px !important;
  border-bottom:1px solid #eef2f7 !important;
  vertical-align:middle !important;
  font-size:11px !important;
  line-height:1.55 !important;
}

.draft-detail-table thead th,
.draft-document-detail table thead th{
  background:#f8fafc !important;
  color:#475569 !important;
  font-size:10px !important;
  font-weight:850 !important;
  white-space:nowrap;
}

.draft-document-detail table{
  width:100% !important;
  max-width:100% !important;
  border-collapse:collapse !important;
  margin:12px 0 !important;
  border:1px solid #e2e8f0 !important;
  border-radius:11px;
  overflow:hidden;
}

.draft-document-detail table tbody tr:last-child td,
.draft-detail-table tbody tr:last-child td{
  border-bottom:0 !important;
}

/* 수입/지출 */
.draft-section-title{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}

.draft-section-title h3{
  margin:0 0 3px;
}

.draft-section-title p{
  margin:0;
  color:#64748b;
  font-size:10px;
}

.draft-finance-summary{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:9px;
  margin-bottom:10px;
}

.draft-finance-summary-card{
  min-height:76px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  padding:12px 14px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#fff;
}

.draft-finance-summary-card small{
  color:#64748b;
  font-size:9px;
  font-weight:750;
}

.draft-finance-summary-card strong{
  color:#0f172a;
  font-size:17px;
  letter-spacing:-.25px;
}

.draft-finance-summary-card.income{
  border-color:#bfdbfe;
  background:#f8fbff;
}

.draft-finance-summary-card.income strong{
  color:#1d4ed8;
}

.draft-finance-summary-card.expense{
  border-color:#fed7aa;
  background:#fffaf5;
}

.draft-finance-summary-card.expense strong{
  color:#c2410c;
}

.draft-finance-summary-card.balance{
  border-color:#bbf7d0;
  background:#f7fff9;
}

.draft-finance-summary-card.balance strong{
  color:#15803d;
}

.draft-finance-summary-card.balance.minus{
  border-color:#fecaca;
  background:#fff8f8;
}

.draft-finance-summary-card.balance.minus strong{
  color:#dc2626;
}

.draft-finance-table th:first-child{
  width:auto;
}

.draft-finance-table th:nth-child(2),
.draft-finance-table th:nth-child(3){
  width:190px;
}

.draft-finance-table tfoot th{
  background:#f8fafc !important;
  color:#334155 !important;
  border-top:1px solid #e2e8f0 !important;
}

.draft-finance-desc{
  color:#334155;
  font-weight:700;
}

.draft-money{
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}

.draft-money.income{
  color:#1d4ed8;
}

.draft-money.expense{
  color:#c2410c;
}

/* 결재/처리 이력: 카드 대신 댓글형 스레드 */
.draft-history-section{
  padding-top:3px;
}

.draft-history-thread{
  position:relative;
  display:grid;
  gap:0;
  margin-top:7px;
}

.draft-history-comment{
  position:relative;
  display:flex;
  gap:10px;
  padding:11px 2px 11px 0;
  border-bottom:1px solid #eef2f7;
  background:transparent;
}

.draft-history-comment:last-child{
  border-bottom:0;
}

.draft-history-comment .comment-avatar{
  width:31px;
  height:31px;
  flex:0 0 31px;
  margin-top:1px;
  background:#eff6ff;
  color:#1d4ed8;
}

.draft-history-comment.approved .comment-avatar{
  background:#f0fdf4;
  color:#15803d;
}

.draft-history-comment.rejected .comment-avatar{
  background:#fef2f2;
  color:#dc2626;
}

.draft-history-main{
  min-width:0;
  flex:1;
}

.draft-history-meta{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  min-height:22px;
}

.draft-history-meta b{
  color:#0f172a;
  font-size:11px;
}

.draft-history-meta time{
  margin-left:auto;
  color:#94a3b8;
  font-size:9px;
}

.draft-history-action{
  height:20px;
  display:inline-flex;
  align-items:center;
  padding:0 7px;
  border-radius:999px;
  background:#f1f5f9;
  color:#64748b;
  font-size:8px;
  font-weight:850;
}

.draft-history-action.submitted{
  background:#eff6ff;
  color:#2563eb;
}

.draft-history-action.approved{
  background:#f0fdf4;
  color:#15803d;
}

.draft-history-action.rejected{
  background:#fef2f2;
  color:#dc2626;
}

.draft-history-content{
  margin-top:4px;
  color:#475569;
  font-size:11px;
  line-height:1.65;
  white-space:pre-wrap;
}

@media(max-width:800px){
  .collab-pagination-wrap{
    grid-template-columns:1fr;
    justify-items:center;
    gap:8px;
    padding:10px;
  }

  .collab-pagination-info,
  .collab-page-status{
    justify-self:center;
  }

  .collab-pagination{
    width:100%;
  }

  .collab-page-numbers{
    flex:1;
    overflow:auto;
    justify-content:flex-start;
    scrollbar-width:none;
  }

  .collab-page-numbers::-webkit-scrollbar{
    display:none;
  }

  .draft-finance-summary{
    grid-template-columns:1fr;
  }

  .draft-finance-table th:nth-child(2),
  .draft-finance-table th:nth-child(3){
    width:150px;
  }
}

@media(max-width:600px){
  .collab-page-edge{
    padding:0 8px;
  }

  .collab-page-numbers a,
  .collab-page-numbers>span:not(.collab-page-ellipsis){
    width:32px;
    height:32px;
  }

  .draft-history-meta time{
    width:100%;
    margin-left:0;
  }
}

/* ===== v30.53 협업 권한 / 행사준비 / 일정 ===== */
.reader-status-card.is-excluded{border-color:#e2e8f0!important;background:#f8fafc!important}.reader-status-card.is-excluded .reader-state-text{color:#64748b!important}
.prep-compose-form{width:min(760px,100%)!important;max-width:760px!important;margin:0 auto!important;overflow:hidden!important;border-radius:16px!important;box-shadow:none!important}
.prep-compose-head{display:flex;align-items:center;gap:13px;padding:16px 20px;border-bottom:1px solid #eef2f7;background:linear-gradient(180deg,#fff,#fbfdff)}
.prep-compose-head .eyebrow{margin-bottom:4px}.prep-compose-head h1{margin:0 0 3px;font-size:21px}.prep-compose-head small{color:#64748b;font-size:10px}
.prep-compose-icon{width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;border-radius:13px;background:#eff6ff;color:#2563eb;font-size:20px;font-weight:900}
.prep-compose-grid{gap:13px 14px!important}.prep-picker-filter{display:grid;grid-template-columns:170px minmax(0,1fr);gap:8px;margin-bottom:8px}
.prep-people-select{min-height:152px!important;height:152px!important;padding:5px!important}.prep-people-select option{min-height:31px;padding:7px 9px;border-radius:7px}
.prep-picked-preview{margin-top:8px}.prep-picked-person{display:inline-grid;grid-template-columns:30px auto;column-gap:8px;align-items:center;padding:7px 10px 7px 7px;border:1px solid #dbeafe;border-radius:11px;background:#f8fbff}
.prep-picked-person>span{grid-row:1/3;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:#dbeafe;color:#1d4ed8;font-size:10px;font-weight:900}.prep-picked-person b{font-size:10px;color:#1e293b}.prep-picked-person small{font-size:8px;color:#64748b}
.prep-desc{min-height:110px!important}.prep-progress-form-field{padding:12px 13px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc}.prep-progress-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.prep-progress-heading span{font-size:11px;font-weight:800}.prep-progress-heading b{color:#2563eb;font-size:15px}.prep-progress-range{width:100%;accent-color:#2563eb}.prep-compose-foot{position:sticky!important;bottom:0!important;background:rgba(255,255,255,.97)!important;backdrop-filter:blur(8px)}
.subtask-static-progress{width:110px;height:7px;overflow:hidden;border-radius:999px;background:#e2e8f0}.subtask-static-progress i{display:block;height:100%;border-radius:inherit;background:#2563eb}
button.vehicle-card{width:100%;text-align:left;cursor:pointer;font:inherit;transition:border-color .15s ease,background .15s ease,transform .15s ease,box-shadow .15s ease}.car-filter-card:hover{border-color:#93c5fd!important;background:#f8fbff!important;transform:translateY(-1px)}.car-filter-card.active{border-color:#2563eb!important;background:#eff6ff!important;box-shadow:0 0 0 2px rgba(37,99,235,.08)!important}.car-filter-card.active em{color:#1d4ed8!important}
.calendar-side-list{max-height:660px;overflow:auto}.panel-head>div>small{color:#94a3b8;font-size:9px}
.schedule-detail-fragment{display:grid;gap:13px}.schedule-detail-hero{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #dbeafe;border-radius:13px;background:#f8fbff}.schedule-detail-hero.car{border-color:#fed7aa;background:#fffaf5}.schedule-detail-hero>span{width:44px;height:44px;flex:0 0 44px;display:grid;place-items:center;border-radius:12px;background:#dbeafe;font-size:21px}.schedule-detail-hero.car>span{background:#ffedd5}.schedule-detail-hero small{color:#64748b;font-size:8px;font-weight:850;letter-spacing:.08em}.schedule-detail-hero h3{margin:3px 0 2px;font-size:16px}.schedule-detail-hero p{margin:0;color:#64748b;font-size:10px}
.schedule-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.schedule-detail-grid>div{min-height:68px;display:flex;flex-direction:column;justify-content:center;gap:4px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:11px;background:#fff}.schedule-detail-grid>div.full{grid-column:1/-1}.schedule-detail-grid small{color:#94a3b8;font-size:9px}.schedule-detail-grid strong{color:#334155;font-size:11px;line-height:1.6;word-break:keep-all}.schedule-detail-actions{display:flex;justify-content:flex-end;padding-top:3px}
@media(max-width:700px){.prep-picker-filter{grid-template-columns:1fr}.schedule-detail-grid{grid-template-columns:1fr}.schedule-detail-grid>div.full{grid-column:auto}}


/* ===== v30.54 담당자 유지 / 연결문서 모달 / 월별 차량 / 광고 / 헤더 간격 ===== */

/* 로고 크기는 유지하면서 실제 레이아웃 점유폭만 줄여 메뉴를 더 가까이 붙인다. */
.topbar{
  gap:2px !important;
}

.original-itda-brand{
  min-width:124px !important;
  width:124px !important;
  flex:0 0 124px !important;
  margin-right:-6px !important;
}

/* 연결 문서 상세는 읽기 전용 상세 모달로 정리 */
.linked-doc-detail-btn{
  width:100% !important;
  border:0 !important;
  text-align:left !important;
  font:inherit !important;
}

.prep-linked-detail-modal{
  width:min(1120px,calc(100vw - 32px)) !important;
  max-width:1120px !important;
}

.prep-linked-detail-body{
  max-height:72vh;
  overflow:auto;
}

.prep-linked-detail-body .comment-compose{
  display:none !important;
}

/* 차량 월별 예약 건수 */
.car-filter-card em{
  display:inline-flex !important;
  align-items:center;
  gap:2px;
  white-space:nowrap;
}

.car-filter-card [data-reservation-count]{
  font-weight:900;
  font-variant-numeric:tabular-nums;
}

/* 광고 종료 임박 */
.ad-request-card.deadline-soon{
  position:relative;
  border-color:#f59e0b !important;
  box-shadow:0 3px 14px rgba(245,158,11,.09) !important;
}

@media(max-width:900px){
  .topbar{
    gap:1px !important;
  }

  .original-itda-brand{
    min-width:114px !important;
    width:114px !important;
    flex-basis:114px !important;
    margin-right:-5px !important;
  }
}

@media(max-width:700px){
  .original-itda-brand{
    min-width:98px !important;
    width:98px !important;
    flex-basis:98px !important;
    margin-right:-4px !important;
  }

  .prep-linked-detail-modal{
    width:100% !important;
    max-width:none !important;
  }
}


/* ===== v30.55 홈 인트로/요약 · 사용자 수정 모달 · 행사관리 데모 ===== */

.login-summary-empty{
  min-height:170px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:5px;
  text-align:center;
  color:#64748b;
}
.login-summary-empty>span{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  margin-bottom:4px;
  border-radius:50%;
  background:#ecfdf5;
  color:#16a34a;
  font-size:20px;
  font-weight:900;
}
.login-summary-empty strong{color:#334155;font-size:13px}
.login-summary-empty small{font-size:10px;color:#94a3b8}

/* 사용자 수정 */
.user-edit-modal-form{
  width:min(720px,100%)!important;
  max-width:720px!important;
  margin:0 auto!important;
  overflow:hidden!important;
  box-shadow:none!important;
}
.user-edit-intro{
  display:flex;
  align-items:center;
  gap:12px;
  padding:16px 20px;
  border-bottom:1px solid #eef2f7;
  background:linear-gradient(180deg,#fff,#fbfdff);
}
.user-edit-avatar{
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#e0e7ff;
  color:#4338ca;
  font-size:15px;
  font-weight:900;
}
.user-edit-intro h1{margin:2px 0 2px;font-size:20px}
.user-edit-intro small{color:#64748b;font-size:10px}

/* 행사관리, 데모 v24 구조 */
.clickable-stats .stat-card{
  border:1px solid var(--border)!important;
  text-align:left!important;
  cursor:pointer!important;
  font-family:inherit!important;
}
.stat-filter-card.active{
  border-color:#93c5fd!important;
  box-shadow:0 0 0 2px #dbeafe!important;
  background:#f8fbff!important;
}
.admin-event-list-panel{overflow:hidden}
.admin-event-toolbar .toolbar-left{flex-wrap:wrap}
.admin-event-table{min-width:920px!important}
.admin-event-code{margin-top:3px}
.home-main-inline{color:#2563eb;font-weight:850}
.admin-event-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  flex-wrap:wrap;
}
.participant-count-btn{
  height:32px!important;
  border:1px solid #bfdbfe!important;
  background:var(--primarySoft)!important;
  color:var(--primary)!important;
  border-radius:999px!important;
  padding:0 11px!important;
  font-size:12px!important;
  font-weight:850!important;
  font-family:inherit!important;
  cursor:pointer;
}
.participant-count-btn:hover{background:#dbeafe!important}
.admin-hint-card{
  margin-top:14px;
  padding:16px 18px;
  border:1px dashed #bfdbfe;
  background:#f8fbff;
  border-radius:14px;
  display:flex;
  gap:12px;
  align-items:flex-start;
  color:#334155;
}
.admin-hint-card>span{font-size:24px}
.admin-hint-card strong{display:block;margin-bottom:4px}
.admin-hint-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}
.participant-summary{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin-bottom:16px;
}
.participant-summary .sum-card{
  padding:13px 14px;
  border:1px solid var(--border);
  border-radius:11px;
  background:#f8fafc;
}
.participant-summary small{
  display:block;
  color:var(--muted);
  margin-bottom:5px;
  font-size:10px;
}
.participant-summary strong{font-size:18px}
.participant-list-panel{box-shadow:none!important;margin:0!important}
.range-sep{font-size:11px;color:var(--muted)}

/* 기존 메인행사 선택 기능도 데모 디자인과 같은 관리화면 안에서 유지 */
.featured-choice-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.featured-choice{
  position:relative;
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:13px;
  border:1px solid var(--border);
  border-radius:12px;
  background:#fff;
  cursor:pointer;
}
.featured-choice:has(input:checked){border-color:#93c5fd;background:#eff6ff}
.featured-choice input{
  margin-top:3px;
  width:17px;
  height:17px;
  accent-color:var(--primary);
}
.featured-choice-main{
  min-width:0;
  display:flex;
  flex:1;
  flex-direction:column;
  gap:5px;
}
.featured-choice-main strong{font-size:13px;line-height:1.35}
.featured-choice-main small{color:var(--muted);font-size:10px}
.featured-main-badge{
  flex:0 0 auto;
  padding:4px 7px;
  border-radius:999px;
  background:var(--primary);
  color:#fff;
  font-size:9px;
  font-weight:850;
}

/* 행사 등록/수정 모달 */
.event-admin-form{
  width:min(820px,100%)!important;
  max-width:820px!important;
  margin:0 auto!important;
  overflow:hidden!important;
  box-shadow:none!important;
}
.event-form-intro{
  display:flex;
  align-items:center;
  gap:13px;
  padding:16px 20px;
  border-bottom:1px solid #eef2f7;
  background:linear-gradient(180deg,#fff,#fbfdff);
}
.event-form-icon{
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border-radius:13px;
  background:#eff6ff;
  font-size:21px;
}
.event-form-intro h1{margin:2px 0 2px;font-size:20px}
.event-form-intro small{color:#64748b;font-size:10px}
.event-description-textarea{min-height:140px!important}
.event-image-preview-wrap{
  margin-top:10px;
  padding:10px;
  border:1px solid #e2e8f0;
  border-radius:12px;
  background:#f8fafc;
}
.event-image-preview-wrap img{
  display:block;
  width:100%;
  max-height:240px;
  object-fit:cover;
  border-radius:9px;
  background:#e2e8f0;
}
.event-image-preview-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:9px;
  color:#64748b;
  font-size:9px;
}
.event-image-delete-check{
  display:flex;
  align-items:center;
  gap:5px;
  color:#dc2626;
  font-weight:800;
}

@media(max-width:1050px){
  .featured-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
  .participant-summary{grid-template-columns:1fr 1fr}
}
@media(max-width:700px){
  .featured-choice-grid{grid-template-columns:1fr}
  .participant-summary{grid-template-columns:1fr 1fr}
  .event-image-preview-actions{align-items:flex-start;flex-direction:column}
  .admin-event-toolbar .toolbar-right{display:none}
}


/* ===== v30.56 pagination / smooth home intro / stats demo ===== */

/* 공통 페이지 처리 */
.itda-pagination-wrap{
  min-height:58px;
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:14px;
  padding:9px 11px 9px 14px;
  border-top:1px solid #eef2f7;
  background:#fff;
}
.itda-pagination-info{
  display:flex;
  align-items:center;
  gap:8px;
  color:#94a3b8;
  font-size:10px;
}
.itda-pagination-info strong{
  color:#334155;
  font-size:11px;
}
.itda-pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}
.itda-page-numbers{
  display:flex;
  align-items:center;
  gap:4px;
}
.itda-page-numbers a,
.itda-page-numbers button,
.itda-page-numbers>span.active{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  color:#64748b;
  text-decoration:none;
  font:inherit;
  font-size:11px;
  font-weight:750;
  cursor:pointer;
}
.itda-page-numbers a:hover,
.itda-page-numbers button:hover{
  border-color:#dbeafe;
  background:#eff6ff;
  color:#2563eb;
}
.itda-page-numbers>span.active{
  border-color:#2563eb;
  background:#2563eb;
  color:#fff;
  box-shadow:0 3px 10px rgba(37,99,235,.18);
}
.itda-page-ellipsis{
  width:22px;
  text-align:center;
  color:#94a3b8;
}
.itda-page-edge{
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 10px;
  border:1px solid #e2e8f0;
  border-radius:9px;
  background:#fff;
  color:#475569;
  text-decoration:none;
  font:inherit;
  font-size:10px;
  font-weight:750;
  cursor:pointer;
  white-space:nowrap;
}
.itda-page-edge:hover:not(.disabled):not(:disabled){
  border-color:#bfdbfe;
  background:#eff6ff;
  color:#2563eb;
}
.itda-page-edge.disabled,
.itda-page-edge:disabled{
  opacity:.35;
  cursor:not-allowed;
}
.itda-page-status{
  justify-self:end;
  color:#94a3b8;
  font-size:10px;
}
.itda-page-status b{color:#2563eb}
.user-list-panel{overflow:hidden}
.user-search-toolbar .toolbar-left{flex-wrap:wrap}
.user-row-actions{
  display:flex;
  justify-content:flex-end;
  gap:5px;
}
.user-row-actions form{margin:0}

/* 홈 진입 애니메이션: 기존 0.88초 강제 override를 최종적으로 되돌리고 프레임을 부드럽게 연결 */
.original-login-intro{
  background:
    radial-gradient(circle at 50% 42%,rgba(30,41,59,.48),transparent 34%),
    #070a12!important;
  will-change:opacity,visibility;
}
.original-login-intro.show{
  animation:itdaHomeEntryFade 1.72s cubic-bezier(.22,.61,.36,1) forwards!important;
}
.original-login-intro h1{
  animation:itdaHomeEntryText 1.35s cubic-bezier(.16,1,.3,1) both!important;
  will-change:transform,opacity,filter;
}
body.home-entry-playing{overflow:hidden}
@keyframes itdaHomeEntryFade{
  0%{opacity:0;visibility:visible}
  10%{opacity:1}
  72%{opacity:1}
  100%{opacity:0;visibility:hidden}
}
@keyframes itdaHomeEntryText{
  0%{opacity:0;transform:translateY(10px) scale(.965);filter:blur(7px);letter-spacing:.3px}
  32%{opacity:1;transform:translateY(0) scale(1);filter:blur(0);letter-spacing:.7px}
  74%{opacity:1;transform:translateY(0) scale(1.01);filter:blur(0);letter-spacing:.85px}
  100%{opacity:0;transform:translateY(-4px) scale(1.015);filter:blur(2px);letter-spacing:1px}
}

/* 행사관리 10개 페이지 */
.admin-event-pagination-wrap{
  border-top:1px solid #eef2f7;
}
#adminEventPagination .itda-page-numbers button{
  flex:0 0 34px;
}

/* 통계: demo v24 구조 */
.stats-tabs{margin-bottom:14px!important}
.stats-tab-panel{margin-bottom:12px}
.stats-three-col{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px!important;
}
.stats-two-col-wide{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
}
.stats-bar-row{
  display:grid!important;
  grid-template-columns:90px minmax(0,1fr) 34px!important;
  gap:8px!important;
  align-items:center!important;
  margin:12px 0!important;
  font-size:11px!important;
}
.stats-bar-row>span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#475569;
}
.stats-bar-row>div{
  height:9px!important;
  overflow:hidden!important;
  border-radius:999px!important;
  background:#e2e8f0!important;
}
.stats-bar-row i{
  display:block!important;
  height:100%!important;
  min-width:0;
  border-radius:999px!important;
  background:var(--primary)!important;
  transition:width .38s cubic-bezier(.22,.61,.36,1);
}
.stats-bar-row b{
  text-align:right;
  color:#334155;
  font-size:11px;
}
.stats-event-filter-panel{margin-bottom:14px}
.stats-event-summary{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  margin-bottom:14px;
}
.stats-visit-summary{
  grid-template-columns:minmax(220px,1fr) repeat(3,minmax(0,0))!important;
  margin-bottom:14px;
}
.stats-export-line{
  justify-content:flex-end!important;
  margin-bottom:10px!important;
}
#stats-event .panel,
#stats-visit .panel,
#stats-users .panel{
  overflow:hidden;
}
#stats-event .panel-body,
#stats-visit .panel-body,
#stats-users .panel-body{
  min-height:130px;
}

/* PDF/print 버튼 동작: 브라우저 PDF 저장에 필요한 행사 통계만 인쇄 */
@media print{
  body.stats-print-event .app-header,
  body.stats-print-event .subbar,
  body.stats-print-event .page-head,
  body.stats-print-event .stats-tabs,
  body.stats-print-event #stats-users,
  body.stats-print-event #stats-visit,
  body.stats-print-event #stats-event .stats-event-filter-panel .toolbar-left,
  body.stats-print-event #stats-event .stats-event-filter-panel .btn{
    display:none!important;
  }
  body.stats-print-event #stats-event{
    display:block!important;
  }
  body.stats-print-event .page-shell{
    width:100%!important;
    max-width:none!important;
    padding:10mm!important;
  }
  body.stats-print-event .panel,
  body.stats-print-event .stat-card{
    box-shadow:none!important;
    break-inside:avoid;
  }
}

@media(max-width:1050px){
  .stats-three-col{grid-template-columns:1fr!important}
  .stats-two-col-wide{grid-template-columns:1fr!important}
}
@media(max-width:800px){
  .itda-pagination-wrap{
    grid-template-columns:1fr;
    justify-items:center;
    gap:8px;
    padding:10px;
  }
  .itda-pagination-info,
  .itda-page-status{justify-self:center}
  .itda-pagination{width:100%}
  .itda-page-numbers{
    flex:1;
    justify-content:center;
  }
  .stats-event-summary{grid-template-columns:1fr 1fr!important}
}
@media(max-width:600px){
  .itda-pagination{
    gap:5px;
  }
  .itda-page-edge{padding:0 8px}
  .itda-page-numbers{
    overflow:auto;
    justify-content:flex-start;
    scrollbar-width:none;
  }
  .itda-page-numbers::-webkit-scrollbar{display:none}
  .itda-page-numbers a,
  .itda-page-numbers button,
  .itda-page-numbers>span.active{
    flex:0 0 32px;
    width:32px;
    height:32px;
  }
  .stats-event-summary{grid-template-columns:1fr!important}
  .stats-bar-row{grid-template-columns:76px minmax(0,1fr) 30px!important}
}
@media(prefers-reduced-motion:reduce){
  .original-login-intro.show,
  .original-login-intro h1{
    animation-duration:.35s!important;
  }
}


/* ===== v30.57 세부 권한 ===== */
.permission-tree .perm-grand{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
.permission-tree .perm-grand label{
  min-height:36px;
  align-items:center;
}
.permission-tree .perm-child-block:has(input[data-key="admin.events"]:checked),
.permission-tree .perm-child-block:has(input[data-key="admin.settings"]:checked){
  border-color:#dbeafe;
  background:#fbfdff;
}
@media(max-width:700px){
  .permission-tree .perm-grand{grid-template-columns:1fr}
}


/* ===== v30.58 홈 인트로 + 로그인 요약: 데모 v24 exact ===== */

/*
데모 v24 원본값:
- intro show: originalIntroFade 1.55s ease
- title: originalIntroZoom 1.05s ease
- 220ms 뒤 show
- 1800ms에 finish
- finish 뒤 180ms에 post-login summary
*/
.original-login-intro{
  position:fixed !important;
  inset:0 !important;
  z-index:10020 !important;
  background:#070a12 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transition:none !important;
  will-change:auto !important;
}

.original-login-intro.show{
  opacity:1 !important;
  visibility:visible !important;
  animation:originalIntroFade 1.55s ease forwards !important;
}

.original-login-intro h1{
  margin:0 !important;
  padding:0 18px !important;
  color:rgba(255,255,255,.95) !important;
  font-size:1.7rem !important;
  font-weight:900 !important;
  letter-spacing:.6px !important;
  text-align:center !important;
  animation:originalIntroZoom 1.05s ease forwards !important;
}

@keyframes originalIntroZoom{
  0%{
    transform:scale(.86);
    opacity:0;
    filter:blur(10px);
  }
  55%{
    opacity:1;
    filter:blur(0);
  }
  100%{
    transform:scale(1);
    opacity:1;
  }
}

@keyframes originalIntroFade{
  0%,70%{
    opacity:1;
  }
  100%{
    opacity:0;
    visibility:hidden;
  }
}

body.home-demo-intro-running{
  overflow:hidden !important;
}

/* v30.56에서 추가했던 부드러운 자체 애니메이션은 최종적으로 사용하지 않는다. */
.original-login-intro.show{
  animation-name:originalIntroFade !important;
  animation-duration:1.55s !important;
  animation-timing-function:ease !important;
}

.original-login-intro h1{
  animation-name:originalIntroZoom !important;
  animation-duration:1.05s !important;
  animation-timing-function:ease !important;
}

/* 데모 v24 요약 모달 */
.login-summary-section{
  border:1px solid var(--border) !important;
  border-radius:13px !important;
  padding:12px !important;
  margin-bottom:10px !important;
  background:#fff;
}

.login-summary-section h3{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  margin:0 0 8px !important;
  font-size:13px !important;
}

.login-summary-section h3 em{
  padding:1px 7px !important;
  border-radius:999px !important;
  background:var(--primary) !important;
  color:#fff !important;
  font-size:10px !important;
  font-style:normal !important;
}

.login-summary-item{
  width:100% !important;
  min-height:0 !important;
  border:0 !important;
  border-top:1px solid #eef2f7 !important;
  border-radius:0 !important;
  background:#fff !important;
  padding:9px 3px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:10px !important;
  text-align:left !important;
  text-decoration:none !important;
  color:inherit !important;
  font-family:inherit !important;
  cursor:pointer;
}

.login-summary-item:hover{
  background:#f8fafc !important;
}

.login-summary-item span{
  font-size:11px !important;
  font-weight:750 !important;
}

.login-summary-item small{
  color:var(--muted) !important;
  font-size:9px !important;
}

.birthday-summary{
  border-color:#fde68a !important;
  background:#fffbeb !important;
}

.birthday-summary>p{
  margin:0 0 8px !important;
  color:#92400e !important;
  font-size:11px !important;
}

.birthday-people{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:6px !important;
}

.birthday-people span{
  padding:6px 8px !important;
  border-radius:999px !important;
  background:#fef3c7 !important;
  color:#92400e !important;
  font-size:10px !important;
}

.post-login-detail-modal{
  width:min(1080px,calc(100vw - 32px)) !important;
  max-width:1080px !important;
}

.post-login-detail-body{
  max-height:72vh !important;
  overflow:auto !important;
}

/* 요약에서 연 상세는 확인 중심. 페이지 전용 댓글 입력 컨트롤은 숨긴다. */
.post-login-detail-body .comment-compose{
  display:none !important;
}

@media(max-width:700px){
  .original-login-intro h1{
    font-size:1.4rem !important;
  }

  .post-login-detail-modal{
    width:100% !important;
    max-width:none !important;
  }
}

@media(prefers-reduced-motion:reduce){
  .original-login-intro.show{
    animation:originalIntroFade 1.55s ease forwards !important;
  }
  .original-login-intro h1{
    animation:originalIntroZoom 1.05s ease forwards !important;
  }
}


/* ===== v30.59 old ITDA transitions / settings permission UX ===== */

/* 옛 ITDA의 app-enter 값을 그대로 사용하되 transform/opacity 렌더링을 안정화 */
.app-header.app-enter,
.page-shell.app-enter{
  animation:appEnter .62s cubic-bezier(.22,.61,.36,1) both !important;
  will-change:opacity,transform;
  backface-visibility:hidden;
}
@keyframes appEnter{
  from{opacity:0;transform:translate3d(0,13px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}

/* 환경설정 선택 탭 */
.settings-main-tabs{
  display:flex;
  gap:7px;
  padding:10px 12px;
  margin:0!important;
  overflow-x:auto;
  border-bottom:1px solid #e2e8f0;
  background:#f8fafc;
}
.settings-main-tabs .settings-tab{
  position:relative;
  height:40px;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:0 14px;
  border:1px solid #dbe3ec;
  border-radius:10px;
  background:#fff;
  color:#64748b;
  font:inherit;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
  transition:.15s ease;
}
.settings-main-tabs .settings-tab i{
  width:6px;height:6px;border-radius:50%;background:#cbd5e1;
}
.settings-main-tabs .settings-tab:hover{
  border-color:#bfdbfe;background:#f8fbff;color:#2563eb;
}
.settings-main-tabs .settings-tab.active{
  border-color:#2563eb;
  background:#eff6ff;
  color:#1d4ed8;
  box-shadow:0 0 0 2px rgba(37,99,235,.08);
}
.settings-main-tabs .settings-tab.active i{
  background:#2563eb;
  box-shadow:0 0 0 3px #dbeafe;
}
.settings-main-content{padding-top:16px!important}

/* 계정별 권한그룹 필터 */
.settings-fragment-head{align-items:center!important}
.settings-result-count{
  padding:6px 9px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:10px;font-weight:850;
}
.account-group-filterbar{
  display:grid;
  grid-template-columns:180px minmax(180px,1fr) 210px auto auto;
  gap:8px;
  align-items:center;
  padding:11px 0 12px;
}
.account-group-table-wrap{border:1px solid #e2e8f0;border-radius:12px;overflow:auto}
.account-group-table{min-width:720px!important}
.account-group-table .group-select{min-width:180px}
.account-group-pagination{border-top:0!important;padding-left:0!important;padding-right:0!important}

/* 권한그룹관리: 모듈/화면/세부동작의 시각적 위계 */
.permission-layout{
  display:grid;
  grid-template-columns:230px minmax(0,1fr);
  gap:18px;
}
.permission-group-list{
  display:grid;
  align-content:start;
  gap:7px;
  padding:2px;
}
.permission-group-btn{
  border:1px solid #e2e8f0!important;
  border-radius:11px!important;
  background:#fff!important;
  padding:11px 12px!important;
  transition:.15s ease;
}
.permission-group-btn:hover{border-color:#bfdbfe!important;background:#f8fbff!important}
.permission-group-btn.active{
  border-color:#2563eb!important;
  background:#eff6ff!important;
  box-shadow:0 0 0 2px rgba(37,99,235,.07)!important;
}
.permission-editor{
  min-width:0;
  padding-left:18px;
  border-left:1px solid #e2e8f0;
}
.permission-editor-head{
  display:grid;
  grid-template-columns:minmax(260px,420px) minmax(0,1fr);
  gap:13px;
  align-items:end;
  margin-bottom:13px;
}
.permission-editor-guide{
  min-height:57px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:9px 12px;
  border:1px solid #dbeafe;
  border-radius:11px;
  background:#f8fbff;
}
.permission-editor-guide b{font-size:11px;color:#1e40af}
.permission-editor-guide small{margin-top:3px;color:#64748b;font-size:9px}
.permission-tree-cards{display:grid;gap:11px}
.permission-module-card{
  overflow:hidden;
  border:1px solid #e2e8f0!important;
  border-radius:13px!important;
  background:#fff!important;
}
.permission-module-head{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:10px 13px;
  border-bottom:1px solid #eef2f7;
  background:#f8fafc;
}
.permission-module-head .perm-parent{
  flex:1;
  display:grid;
  grid-template-columns:18px 32px minmax(0,1fr);
  align-items:center;
  gap:8px;
  cursor:pointer;
}
.permission-module-head input,
.permission-module-body input{width:16px;height:16px;accent-color:#2563eb}
.permission-module-icon{
  width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#fff;border:1px solid #e2e8f0;font-size:16px;
}
.permission-module-copy{display:flex;flex-direction:column;gap:2px}
.permission-module-copy b{font-size:12px;color:#0f172a}
.permission-module-copy small{font-size:9px;color:#94a3b8}
.permission-module-count{
  flex:0 0 auto;padding:4px 7px;border-radius:999px;background:#fff;border:1px solid #e2e8f0;color:#64748b;font-size:8px;font-weight:800;
}
.permission-module-body{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  padding:11px 12px 13px;
}
.permission-feature-block{
  border:1px solid #e2e8f0;
  border-radius:11px;
  background:#fff;
  overflow:hidden;
}
.permission-feature-head{
  min-height:46px;
  display:grid!important;
  grid-template-columns:18px minmax(0,1fr);
  align-items:center;
  gap:8px;
  padding:8px 10px!important;
  background:#fbfdff;
  border:0!important;
  cursor:pointer;
}
.permission-feature-head>span{display:flex;flex-direction:column;gap:1px}
.permission-feature-head b{font-size:10px;color:#334155}
.permission-feature-head small{font-size:8px;color:#94a3b8}
.permission-action-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:5px!important;
  padding:8px!important;
  border-top:1px solid #eef2f7;
  background:#fff;
}
.permission-action-grid label{
  min-height:34px;
  display:flex!important;
  align-items:center;
  gap:7px;
  padding:6px 8px!important;
  border:1px solid #eef2f7!important;
  border-radius:8px!important;
  background:#f8fafc!important;
  color:#475569;
  font-size:9px!important;
  cursor:pointer;
}
.permission-action-grid label:has(input:checked){
  border-color:#bfdbfe!important;background:#eff6ff!important;color:#1d4ed8!important;
}
.permission-simple-item{
  min-height:44px;
  display:flex!important;
  align-items:center!important;
  gap:8px;
  padding:8px 10px!important;
  border:1px solid #e2e8f0!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#475569;
  font-size:10px;
  cursor:pointer;
}
.permission-simple-item:has(input:checked){border-color:#bfdbfe!important;background:#f8fbff!important;color:#1d4ed8}
.permission-no-child{grid-column:1/-1;color:#94a3b8;font-size:9px;padding:3px 2px}

@media(max-width:980px){
  .account-group-filterbar{grid-template-columns:1fr 1fr 1fr}
  .account-group-filterbar .btn{width:100%}
  .permission-module-body{grid-template-columns:1fr}
  .permission-editor-head{grid-template-columns:1fr}
}
@media(max-width:760px){
  .permission-layout{grid-template-columns:1fr}
  .permission-group-list{display:flex!important;overflow-x:auto}
  .permission-group-btn{min-width:150px}
  .permission-editor{padding-left:0;border-left:0;border-top:1px solid #e2e8f0;padding-top:14px}
  .account-group-filterbar{grid-template-columns:1fr}
  .permission-action-grid{grid-template-columns:1fr}
}

/* ===== v30.60 홈 인트로 종료 cross-fade 보정 ===== */
/*
   검은 인트로가 완전히 사라진 뒤 app-enter를 시작하면 배경 페이지가 잠깐 보였다가
   다시 opacity:0으로 내려가는 순간이 생길 수 있다. 홈 진입을 overlay fade-out과 겹쳐
   한 장면처럼 이어지도록 최종 override한다.
*/
.original-login-intro.show{
  animation:itdaIntroCrossFade 1.55s cubic-bezier(.22,.61,.36,1) forwards !important;
}

.original-login-intro h1{
  animation:itdaIntroTitleCrossFade 1.55s cubic-bezier(.16,1,.3,1) forwards !important;
}

@keyframes itdaIntroCrossFade{
  0%{opacity:1;visibility:visible}
  64%{opacity:1;visibility:visible}
  74%{opacity:.96;visibility:visible}
  84%{opacity:.74;visibility:visible}
  92%{opacity:.42;visibility:visible}
  97%{opacity:.16;visibility:visible}
  100%{opacity:0;visibility:hidden}
}

@keyframes itdaIntroTitleCrossFade{
  0%{transform:scale(.86);opacity:0;filter:blur(10px)}
  28%{transform:scale(.97);opacity:1;filter:blur(1px)}
  42%{transform:scale(1);opacity:1;filter:blur(0)}
  70%{transform:scale(1);opacity:1;filter:blur(0)}
  84%{transform:scale(1.006);opacity:.92;filter:blur(0)}
  94%{transform:scale(1.012);opacity:.42;filter:blur(.7px)}
  100%{transform:scale(1.016);opacity:0;filter:blur(1.5px)}
}

/* 인트로 밑에서 들어오는 화면도 살짝 더 부드럽게. */
body.home-demo-intro-running .app-header.app-enter,
body.home-demo-intro-running .page-shell.app-enter{
  animation-duration:.72s !important;
  animation-timing-function:cubic-bezier(.16,1,.3,1) !important;
}

@media(prefers-reduced-motion:reduce){
  .original-login-intro.show{
    animation:itdaIntroCrossFade .6s ease forwards !important;
  }
  .original-login-intro h1{
    animation:itdaIntroTitleCrossFade .6s ease forwards !important;
  }
}


/* ===== v30.61 홈 인트로 시작/종료 soft cross-fade ===== */
/*
  v30.60은 show 순간 overlay의 0%가 opacity:1이라 첫 프레임이 검게 '툭' 들어올 수 있었다.
  시작 180ms는 천천히 어두워지고, 종료 약 430ms는 홈 화면과 겹쳐 천천히 걷힌다.
*/
.original-login-intro.show{
  animation:itdaIntroSoftCrossFade 1.55s cubic-bezier(.22,.61,.36,1) forwards !important;
}

.original-login-intro h1{
  animation:itdaIntroTitleSoft 1.55s cubic-bezier(.16,1,.3,1) forwards !important;
}

@keyframes itdaIntroSoftCrossFade{
  0%{opacity:0;visibility:visible}
  7%{opacity:.28;visibility:visible}
  13%{opacity:.68;visibility:visible}
  19%{opacity:.94;visibility:visible}
  24%,66%{opacity:1;visibility:visible}
  73%{opacity:.97;visibility:visible}
  80%{opacity:.84;visibility:visible}
  87%{opacity:.62;visibility:visible}
  93%{opacity:.34;visibility:visible}
  97%{opacity:.14;visibility:visible}
  100%{opacity:0;visibility:hidden}
}

@keyframes itdaIntroTitleSoft{
  0%{transform:scale(.94) translateY(4px);opacity:0;filter:blur(8px)}
  13%{transform:scale(.975) translateY(2px);opacity:.62;filter:blur(3px)}
  25%{transform:scale(1) translateY(0);opacity:1;filter:blur(0)}
  68%{transform:scale(1) translateY(0);opacity:1;filter:blur(0)}
  82%{transform:scale(1.004) translateY(-1px);opacity:.84;filter:blur(0)}
  92%{transform:scale(1.009) translateY(-2px);opacity:.42;filter:blur(.5px)}
  100%{transform:scale(1.012) translateY(-3px);opacity:0;filter:blur(1.2px)}
}

body.home-demo-intro-running .app-header.app-enter,
body.home-demo-intro-running .page-shell.app-enter{
  animation-duration:.86s !important;
  animation-timing-function:cubic-bezier(.16,1,.3,1) !important;
}

@media(prefers-reduced-motion:reduce){
  .original-login-intro.show{animation:itdaIntroSoftCrossFade .75s ease forwards !important}
  .original-login-intro h1{animation:itdaIntroTitleSoft .75s ease forwards !important}
}

/* ===== v30.96 행사 참여 통계 / 신청자 검색 ===== */
.participant-search-toolbar{margin:0 0 12px!important;padding:8px 10px!important;border:1px solid #e5edf5;border-radius:12px;background:#f8fbff}
.participant-search-toolbar .search-wrap{min-width:min(430px,100%)}
.stats-participation-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.9fr);gap:14px;margin-top:14px}
.stats-participation-head{gap:12px;align-items:center;flex-wrap:wrap}
.stats-participation-head>div:first-child{min-width:0;flex:1 1 260px}
.stats-participation-head .help{margin:4px 0 0}
.stats-participation-search{flex:0 1 280px;min-width:220px}
.event-participation-list{display:grid;gap:7px}
.event-participation-row{width:100%;display:grid;grid-template-columns:minmax(130px,1.6fr) 88px 82px minmax(104px,.75fr);gap:10px;align-items:center;padding:10px 11px;border:1px solid #e2e8f0;border-radius:11px;background:#fff;text-align:left;font:inherit;color:inherit;cursor:pointer}
.event-participation-org{grid-template-columns:minmax(150px,1.55fr) 82px 92px 116px minmax(104px,.72fr)}
.event-average-rate b{color:#1d4ed8}
.event-participation-row:hover:not(:disabled){background:#f8fbff;border-color:#cbdcf0}
.event-participation-row:disabled{cursor:default;opacity:.58}
.event-participation-name{display:grid;gap:2px;min-width:0}
.event-participation-name strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;color:#0f172a}
.event-participation-name small,.event-participation-metric small,.event-participation-latest{font-size:10.5px;color:#7b8ba1}
.event-participation-metric{display:grid;gap:1px;text-align:right}
.event-participation-metric b{font-size:14px;color:#334155}
.event-participation-latest{text-align:right;white-space:nowrap}
.stats-drill-scroll{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}
@media(max-width:1050px){.stats-participation-grid{grid-template-columns:1fr}}
@media(max-width:760px){
  .participant-search-toolbar{padding:7px!important}
  .participant-search-toolbar .toolbar-left{width:100%}
  .stats-participation-head{align-items:stretch}
  .stats-participation-search{flex:1 1 100%;min-width:0;width:100%}
  .event-participation-row{grid-template-columns:minmax(0,1fr) 68px 68px;padding:9px 10px;gap:7px}
  .event-participation-latest{grid-column:1/-1;text-align:left;padding-top:3px;border-top:1px dashed #e5edf5}
  .event-participation-org{grid-template-columns:repeat(3,minmax(0,1fr))}
  .event-participation-org .event-participation-name{grid-column:1/-1}
  .event-participation-org .event-participation-metric{text-align:center}
  .event-participation-org .event-participation-latest{grid-column:1/-1}
}

/* ===== v30.98 통계 시각화 (행사별 통계 제외) ===== */
.stats-user-summary,.stats-visit-summary{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.stats-visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.stats-visual-panel{overflow:hidden}
.stats-visual-panel .panel-head{align-items:flex-start}
.stats-visual-panel .panel-head h3{margin:0}
.stats-visual-panel .panel-head .help{margin:4px 0 0}
.stats-chart-wide{grid-column:1/-1}
.stats-participation-chart-panel{margin-bottom:14px}

/* donut */
.stats-donut-wrap{display:grid;grid-template-columns:minmax(160px,.72fr) minmax(0,1.28fr);align-items:center;gap:20px;min-height:220px}
.stats-donut-chart{width:min(190px,100%);aspect-ratio:1;border-radius:50%;position:relative;margin:auto;box-shadow:inset 0 0 0 1px rgba(15,23,42,.04)}
.stats-donut-hole{position:absolute;inset:25%;border-radius:50%;background:#fff;display:grid;place-content:center;text-align:center;box-shadow:0 0 0 1px #eef2f7}
.stats-donut-hole strong{font-size:24px;line-height:1;color:#0f172a}
.stats-donut-hole small{margin-top:5px;color:#94a3b8;font-size:10px;font-weight:800}
.stats-donut-legend{display:grid;gap:5px;min-width:0}
.stats-donut-legend button{display:grid;grid-template-columns:10px minmax(0,1fr) 48px 48px;gap:7px;align-items:center;width:100%;min-height:31px;border:0;border-radius:8px;background:transparent;padding:4px 6px;text-align:left;font:inherit;color:#475569;cursor:pointer}
.stats-donut-legend button:hover{background:#f8fafc}
.stats-donut-legend i{width:9px;height:9px;border-radius:50%}
.stats-donut-legend span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:750}
.stats-donut-legend b{font-size:10.5px;text-align:right;color:#475569}
.stats-donut-legend em{font-style:normal;font-size:10px;text-align:right;color:#94a3b8}

/* user top 10 */
.stats-rank-chart{display:grid;gap:6px}
.stats-rank-row{display:grid;grid-template-columns:28px minmax(110px,.9fr) minmax(160px,2fr) 86px;align-items:center;gap:10px;width:100%;min-height:43px;border:1px solid transparent;border-radius:10px;background:#f8fafc;padding:7px 9px;text-align:left;font:inherit;color:inherit;cursor:pointer}
.stats-rank-row:hover{border-color:#cbd5e1;background:#fff}
.stats-rank-no{width:23px;height:23px;border-radius:8px;background:#e0e7ff;color:#4338ca;display:grid;place-items:center;font-size:10px;font-weight:900}
.stats-rank-name{display:grid;min-width:0}
.stats-rank-name strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#0f172a}
.stats-rank-name small{font-size:9.5px;color:#94a3b8}
.stats-rank-track{height:10px;border-radius:999px;background:#e2e8f0;overflow:hidden}
.stats-rank-track i{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#6366f1,#38bdf8)}
.stats-rank-value{text-align:right;display:grid}
.stats-rank-value b{font-size:13px;color:#1e293b}
.stats-rank-value small{font-size:9px;color:#94a3b8}

/* org rate compare */
.stats-rate-legend{display:flex;justify-content:flex-end;gap:16px;margin-bottom:8px;color:#64748b;font-size:10px;font-weight:750}
.stats-rate-legend span{display:flex;align-items:center;gap:5px}
.stats-rate-legend i{display:block;width:14px;height:5px;border-radius:999px}
.stats-rate-legend .user-rate{background:#4f46e5}
.stats-rate-legend .avg-rate{background:#0ea5e9}
.stats-rate-row{display:grid;grid-template-columns:minmax(135px,.9fr) minmax(220px,2.1fr);gap:14px;align-items:center;width:100%;min-height:58px;border:0;border-top:1px solid #eef2f7;background:#fff;padding:8px 4px;text-align:left;font:inherit;cursor:pointer}
.stats-rate-row:first-of-type{border-top:0}
.stats-rate-row:hover{background:#f8fbff}
.stats-rate-name{display:grid;min-width:0}
.stats-rate-name strong{font-size:12px;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stats-rate-name small{font-size:9.5px;color:#94a3b8;margin-top:2px}
.stats-rate-lines{display:grid;gap:7px}
.stats-rate-lines>span{position:relative;display:block;height:12px;border-radius:999px;background:#eef2f7;overflow:hidden}
.stats-rate-lines i{display:block;height:100%;border-radius:999px}
.stats-rate-lines i.user-rate{background:#4f46e5}
.stats-rate-lines i.avg-rate{background:#0ea5e9}
.stats-rate-lines b{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:9px;color:#334155;text-shadow:0 1px 0 #fff}

/* visit line */
.stats-line-chart{min-height:230px;color:#4f46e5}
.stats-line-chart svg{width:100%;height:230px;overflow:visible}
.stats-line-grid{stroke:#e2e8f0;stroke-width:1;vector-effect:non-scaling-stroke}
.stats-line-path{stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.stats-line-point circle{fill:#fff;stroke:currentColor;stroke-width:3;vector-effect:non-scaling-stroke;cursor:pointer}
.stats-line-point:hover circle,.stats-line-point:focus circle{fill:#eef2ff;stroke-width:4;outline:none}
.stats-line-xlabel,.stats-line-ylabel{fill:#94a3b8;font-size:10px;font-weight:700}

@media(max-width:1050px){
  .stats-user-summary,.stats-visit-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .stats-visual-grid{grid-template-columns:1fr}
  .stats-chart-wide{grid-column:auto}
}
@media(max-width:760px){
  .stats-user-summary,.stats-visit-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important}
  .stats-user-summary .stat-card,.stats-visit-summary .stat-card{padding:12px!important}
  .stats-user-summary .stat-card strong,.stats-visit-summary .stat-card strong{font-size:22px!important;margin-top:7px}
  .stats-visual-grid{gap:10px}
  .stats-donut-wrap{grid-template-columns:1fr;gap:12px;min-height:0}
  .stats-donut-chart{width:150px}
  .stats-donut-legend{grid-template-columns:1fr 1fr;gap:4px 8px}
  .stats-donut-legend button{grid-template-columns:9px minmax(0,1fr) 38px;padding:3px 2px}
  .stats-donut-legend em{display:none}
  .stats-rank-row{grid-template-columns:24px minmax(0,1fr) 68px;gap:7px;padding:7px}
  .stats-rank-track{grid-column:2/-1;height:7px}
  .stats-rank-value{grid-column:3;grid-row:1;text-align:right}
  .stats-rank-value small{display:none}
  .stats-rate-legend{justify-content:flex-start;flex-wrap:wrap;gap:8px 14px}
  .stats-rate-row{grid-template-columns:1fr;gap:6px;padding:8px 2px}
  .stats-rate-lines{gap:5px}
  .stats-line-chart,.stats-line-chart svg{min-height:190px;height:190px}
}
@media(max-width:420px){
  .stats-donut-legend{grid-template-columns:1fr}
  .stats-user-summary .stat-card small,.stats-visit-summary .stat-card small{font-size:9px}
}
.stats-donut-legend button:disabled{cursor:default;opacity:.72}
.stats-donut-legend button:disabled:hover{background:transparent}


/* v30.99 · calendar today + prep task filters */
.calendar-today-btn{min-width:48px!important;justify-content:center!important}
.prep-summary-filter{font-family:inherit;text-align:left;cursor:pointer;appearance:none;width:100%;color:inherit;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease,background .16s ease}
.prep-summary-filter small{display:block;margin-top:4px;font-size:8px;color:var(--muted);font-weight:700}
.prep-summary-filter:hover{border-color:#93c5fd;box-shadow:0 5px 14px rgba(37,99,235,.08);transform:translateY(-1px)}
.prep-summary-filter.active{border-color:var(--primary)!important;background:#eff6ff!important;box-shadow:0 0 0 2px rgba(37,99,235,.10)!important}
.prep-summary-filter.danger.active{border-color:#f87171!important;background:#fff1f2!important;box-shadow:0 0 0 2px rgba(239,68,68,.09)!important}
.subtask-progress-control{grid-template-columns:minmax(100px,1fr) 40px 34px 58px!important}
.mini-edit-btn{min-width:58px!important;height:28px!important;padding:0 10px!important;font-size:10px!important;font-weight:800!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;line-height:1!important}
@media(max-width:760px){
  .calendar-today-btn{min-width:44px!important;padding-inline:9px!important}
  .subtask-progress-control{grid-template-columns:minmax(88px,1fr) 38px 30px 56px!important;min-width:270px!important}
  .mini-edit-btn{min-width:56px!important;font-size:10px!important}
  .prep-summary-filter small{font-size:9px}
}

/* ===== 이름 앞 성(이니셜) 아이콘 제거 레이아웃 ===== */
.prep-picked-person{grid-template-columns:auto!important;padding:7px 10px!important}
.prep-picked-person b,.prep-picked-person small{grid-column:1!important}
.chosen-chip{grid-template-columns:auto 20px!important;padding-left:8px!important}
.selector-row{column-gap:9px!important}
.reader-chip{min-width:130px}
.reader-status-card{gap:0!important}
.comment-item{gap:0}
.comment-main{width:100%}
.profile-btn,.mobile-nav-user,.slack-user-person{gap:4px!important}

/* ===== v31.02 report/minutes edit history + poll choice image gallery ===== */
.comment-history-item{
  border-color:#c7d2fe!important;
  background:#f8faff!important;
}
.comment-history-badge{
  display:inline-flex;
  align-items:center;
  min-height:20px;
  padding:0 7px;
  border-radius:999px;
  background:#eef2ff;
  color:#4338ca;
  border:1px solid #c7d2fe;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
}

.poll-choice-editor-list{
  display:grid;
  gap:10px;
  margin-top:7px;
  margin-bottom:8px;
}
.poll-choice-editor-card{
  display:grid;
  gap:9px;
  padding:11px;
  border:1px solid #dbe3ee;
  border-radius:13px;
  background:#fbfdff;
}
.poll-choice-editor-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) 38px;
  gap:7px;
  align-items:center;
}
.poll-choice-image-tools{
  display:flex;
  align-items:flex-start;
  gap:9px;
  flex-wrap:wrap;
}
.poll-choice-image-pick{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:36px;
  padding:7px 10px;
  border:1px dashed #a5b4fc;
  border-radius:10px;
  color:#4338ca;
  background:#f5f7ff;
  cursor:pointer;
  font-weight:800;
  font-size:11px;
}
.poll-choice-image-pick input{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.poll-choice-image-pick small{
  color:#818cf8;
  font-size:9px;
  font-weight:700;
}
.poll-choice-image-preview,
.poll-choice-existing-images,
.poll-choice-gallery,
.poll-result-images{
  display:flex;
  gap:7px;
  overflow-x:auto;
  padding-bottom:2px;
  scrollbar-width:thin;
}
.poll-choice-preview-item,
.poll-choice-existing-image{
  position:relative;
  flex:0 0 88px;
  width:88px;
  border:1px solid #dbe3ee;
  border-radius:9px;
  overflow:hidden;
  background:#fff;
}
.poll-choice-preview-item img,
.poll-choice-existing-image img{
  display:block;
  width:100%;
  height:64px;
  object-fit:cover;
  background:#eef2f7;
}
.poll-choice-preview-item small,
.poll-choice-existing-image>span{
  display:block;
  padding:4px 5px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#64748b;
  font-size:8px;
}
.poll-choice-existing-image input{
  position:absolute;
  top:5px;
  right:5px;
  width:16px;
  height:16px;
  accent-color:#ef4444;
}
.poll-choice-existing-image em{
  position:absolute;
  top:4px;
  right:24px;
  padding:2px 5px;
  border-radius:999px;
  background:rgba(15,23,42,.72);
  color:#fff;
  font-size:8px;
  font-style:normal;
}
.poll-new-choice-list{margin-top:10px}

.poll-choice-option{
  display:block;
}
.poll-choice-option-head{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:26px;
}
.poll-choice-gallery{
  margin-top:9px;
  padding-left:30px;
}
.poll-choice-gallery img,
.poll-result-images img{
  flex:0 0 auto;
  width:108px;
  height:78px;
  object-fit:cover;
  border-radius:9px;
  border:1px solid #dbe3ee;
  background:#eef2f7;
}
.poll-result-images{
  margin:2px 0 4px;
}

@media(max-width:700px){
  .poll-choice-editor-card{padding:9px}
  .poll-choice-image-tools{display:grid;grid-template-columns:1fr}
  .poll-choice-image-pick{width:max-content;max-width:100%}
  .poll-choice-preview-item,.poll-choice-existing-image{flex-basis:78px;width:78px}
  .poll-choice-preview-item img,.poll-choice-existing-image img{height:58px}
  .poll-choice-gallery{padding-left:0}
  .poll-choice-gallery img,.poll-result-images img{width:94px;height:70px}
}

/* 2026-09-09 prep role based edit/delete */
.prep-detail-admin-actions{justify-content:flex-end;margin:0 0 10px}
.subtask-row-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px;min-width:120px}
.mini-delete-btn{height:30px!important;min-width:54px!important;padding:0 9px!important;border:1px solid #fecaca!important;border-radius:8px!important;background:#fff5f5!important;color:#dc2626!important;font-size:10px!important;font-weight:800!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;cursor:pointer}
.subtask-progress-control{grid-template-columns:minmax(100px,1fr) 42px 34px minmax(120px,auto)!important}
@media(max-width:700px){
  .subtask-progress-control{grid-template-columns:minmax(86px,1fr) 40px 30px minmax(112px,auto)!important;min-width:0!important}
  .subtask-row-actions{min-width:112px;gap:4px}
  .mini-delete-btn{min-width:52px!important}
}

/* 2026-09 content template picker */
.template-picker-layout{display:grid;grid-template-columns:minmax(240px,34%) minmax(0,66%);gap:16px;min-height:440px}.template-picker-list{border:1px solid var(--line);border-radius:14px;padding:8px;overflow:auto;max-height:560px}.template-picker-item{width:100%;text-align:left;border:1px solid transparent;background:transparent;border-radius:11px;padding:13px;display:grid;gap:5px;cursor:pointer;color:inherit}.template-picker-item:hover{background:#f8fafc;border-color:#e2e8f0}.template-picker-item.active{background:#eef2ff;border-color:#c7d2fe}.template-picker-item b{font-size:14px}.template-picker-item small{color:#64748b;line-height:1.45}.template-picker-item span{font-size:12px;color:#4f46e5;font-weight:700}.template-picker-preview{border:1px solid var(--line);border-radius:14px;overflow:hidden;min-width:0}.template-picker-preview-head{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-bottom:1px solid var(--line);background:#f8fafc}.template-picker-preview-body{padding:20px;overflow:auto;max-height:510px;min-height:360px;background:#fff}.template-picker-preview-body table{border-collapse:collapse;width:100%}.template-picker-preview-body th,.template-picker-preview-body td{border:1px solid #cbd5e1;padding:7px}.content-template-field{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #dbe3f0;border-radius:12px;background:#f8fafc}.content-template-field>div{min-width:0}.content-template-field b{display:block}.content-template-field small{display:block;color:#64748b;margin-top:3px}.itda-loading-action{position:relative;pointer-events:none!important;opacity:.72!important}.itda-loading-action::before{content:"";display:inline-block;width:14px;height:14px;margin-right:7px;vertical-align:-2px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:itdaActionSpin .7s linear infinite}@keyframes itdaActionSpin{to{transform:rotate(360deg)}}
@media(max-width:760px){.template-picker-layout{grid-template-columns:1fr}.template-picker-list{max-height:230px}.template-picker-preview-body{min-height:260px;max-height:380px}.content-template-field{align-items:flex-start;flex-direction:column}}
