*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--ink: #213448;--ink-2: #547792;--ink-3: #94B4C1;--cream: #EAE0CF;--cream-2: #F5EFE3;--bg: #F4F1EA;--paper: #FFFFFF;--line: #E4DCCB;--line-soft: #EFE7D6;--muted: #6E7F8E;--success: #2F8F6E;--warn: #C9871F;--danger: #B5453B}body{font-family:Plus Jakarta Sans,system-ui,sans-serif;min-height:100vh;background:url(/images/logo/tamu_back.jpg) center/cover fixed;-webkit-font-smoothing:antialiased;color:var(--ink)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#f4f1eab8;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);z-index:0;pointer-events:none}.page-wrap,.wrap{position:relative;z-index:1}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.65)}}.page-wrap{max-width:540px;margin:0 auto;padding:32px 20px 56px}body.centered{display:flex;align-items:center;justify-content:center;padding:24px 20px;position:relative}.wrap{width:100%;max-width:460px;display:flex;flex-direction:column;align-items:center}.brand-bar{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.brand-bar-left{display:flex;align-items:center;gap:10px}.brand-bar-texts .brand-name{font-size:16px;font-weight:800;letter-spacing:2px;color:var(--ink)}.brand-bar-texts .brand-sub{font-size:9px;letter-spacing:1.4px;color:var(--ink-3);text-transform:uppercase;margin-top:2px}.brand-bar-date{font-size:12px;font-weight:600;color:var(--muted);display:flex;align-items:center;gap:6px}.header-card{background:linear-gradient(135deg,#213448,#2a4259 65%,#547792);border-radius:20px;padding:22px 22px 20px;margin-bottom:20px;position:relative;overflow:hidden;animation:fadeUp .4s cubic-bezier(.22,1,.36,1) .05s both;box-shadow:0 8px 24px -8px #21344873}.header-card:before{content:"";position:absolute;top:-50px;right:-50px;width:180px;height:180px;border-radius:50%;background:#94b4c12e;pointer-events:none}.header-icon{width:52px;height:52px;background:#eae0cf2e;border-radius:14px;display:flex;align-items:center;justify-content:center;margin:0 auto 14px;border:1px solid rgba(234,224,207,.25)}.header-icon svg{width:24px;height:24px;color:#eae0cf}.header-title{font-size:20px;font-weight:800;color:#eae0cf;margin-bottom:4px;letter-spacing:-.4px;text-align:center}.header-date{font-size:12px;color:#94b4c1;font-weight:500;text-align:center}.header-inner{display:flex;align-items:flex-start;gap:14px;position:relative;z-index:1}.header-eyebrow{font-size:10px;font-weight:700;color:#94b4c1;letter-spacing:.12em;text-transform:uppercase;margin-bottom:3px}.header-name{font-size:15px;font-weight:800;color:#eae0cf;line-height:1.3;letter-spacing:-.2px;margin-bottom:10px}.header-meta{display:flex;flex-wrap:wrap;gap:6px}.header-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:#ffffffd9;background:#ffffff1f;border:1px solid rgba(255,255,255,.2);padding:4px 10px;border-radius:999px}.header-chip svg{width:11px;height:11px;opacity:.85}.back-btn{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:var(--ink-2);text-decoration:none;margin-bottom:20px;padding:8px 14px;background:var(--paper);border:1.5px solid var(--line);border-radius:999px;transition:all .15s;box-shadow:0 1px 4px #2134480f}.back-btn svg{width:14px;height:14px}.back-btn:hover{background:var(--bg);color:var(--ink);border-color:var(--ink-3)}.back-link{display:flex;align-items:center;justify-content:center;margin-top:24px}.back-link a,.back-home{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ink-2);text-decoration:none;transition:color .15s}.back-link a:hover,.back-home:hover{color:var(--success)}.back-link svg,.back-home svg{width:14px;height:14px}.back-home{margin-top:16px}.section-label{font-size:10px;font-weight:700;color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px;padding:0 4px}.error-box{display:flex;align-items:flex-start;gap:10px;background:#f5dcd8;border:1px solid #E8A89F;border-radius:12px;padding:12px 14px;margin-bottom:16px;font-size:13px;font-weight:500;color:#8b2e26}.error-box svg{width:15px;height:15px;flex-shrink:0;margin-top:1px}.meeting-list{display:flex;flex-direction:column;gap:8px}.meeting-card{display:flex;align-items:center;gap:14px;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:14px 16px;text-decoration:none;box-shadow:0 1px 4px #2134480d;transition:all .18s ease;position:relative;overflow:hidden;animation:fadeUp .4s cubic-bezier(.22,1,.36,1) both}.meeting-card:nth-child(1){animation-delay:.05s}.meeting-card:nth-child(2){animation-delay:.1s}.meeting-card:nth-child(3){animation-delay:.15s}.meeting-card:nth-child(4){animation-delay:.2s}.meeting-card:hover{border-color:var(--ink-3);box-shadow:0 4px 14px -4px #21344824;transform:translateY(-2px)}.meeting-card:active{transform:translateY(1px)}.meeting-card.is-today{border-color:#2f8f6e59;background:linear-gradient(135deg,#fff 60%,#edfaf3)}.meeting-card.is-today:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--success);border-radius:3px 0 0 3px}.room-icon-wrap{width:44px;height:44px;flex-shrink:0;background:var(--cream-2);border-radius:12px;border:1px solid var(--line-soft);display:flex;align-items:center;justify-content:center;transition:all .2s}.room-icon-wrap svg{width:20px;height:20px;color:var(--ink-2)}.meeting-card:hover .room-icon-wrap{background:var(--cream)}.meeting-content{flex:1;min-width:0}.meeting-name{font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px;letter-spacing:-.1px}.meeting-meta{display:flex;flex-wrap:wrap;gap:5px}.meta-chip{display:inline-flex;align-items:center;gap:4px;font-size:11px;font-weight:600;color:var(--ink-2);background:var(--bg);border:1px solid var(--line-soft);padding:3px 8px;border-radius:999px}.meta-chip svg{width:11px;height:11px}.badge-today{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;color:#1f6a4e;background:#ddede3;border:1px solid #9DCBB6;padding:3px 9px;border-radius:999px;letter-spacing:.02em}.badge-today:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--success);animation:pulse-dot 1.6s ease infinite}.meeting-arrow{color:var(--line);flex-shrink:0;transition:all .18s}.meeting-arrow svg{width:16px;height:16px}.meeting-card:hover .meeting-arrow{color:var(--ink-3);transform:translate(3px)}.empty-state{background:var(--paper);border:1.5px dashed var(--line);border-radius:20px;padding:48px 24px;text-align:center}.empty-icon{width:52px;height:52px;background:var(--bg);border-radius:14px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;margin:0 auto 12px}.empty-icon svg{width:24px;height:24px;color:var(--ink-3)}.empty-title{font-size:15px;font-weight:800;color:var(--ink);margin-bottom:4px}.empty-sub{font-size:13px;font-weight:500;color:var(--muted)}.form-card{background:var(--paper);border:1px solid var(--line);border-radius:20px;padding:24px 22px;box-shadow:0 4px 14px -6px #21344814;animation:fadeUp .4s cubic-bezier(.22,1,.36,1) .1s both}.form-card-title{font-size:17px;font-weight:800;color:var(--ink);letter-spacing:-.3px;margin-bottom:3px}.form-card-sub{font-size:13px;font-weight:500;color:var(--muted);margin-bottom:20px}.field-group{margin-bottom:16px}.field-label{display:block;font-size:12px;font-weight:600;color:var(--ink);margin-bottom:6px;letter-spacing:.2px}.field-label .req{color:var(--danger);margin-left:2px}.field-label .opt{font-size:11px;font-weight:500;color:var(--ink-3);margin-left:4px}.field-input{width:100%;padding:11px 14px;border-radius:10px;border:1.5px solid var(--line);background:var(--paper);font-family:Plus Jakarta Sans,sans-serif;font-size:14px;font-weight:500;color:var(--ink);outline:none;transition:all .15s}.field-input::-moz-placeholder{color:#94b4c1;font-weight:400}.field-input::placeholder{color:#94b4c1;font-weight:400}.field-input:focus{border-color:var(--ink);box-shadow:0 0 0 4px #21344814}.form-divider{height:1px;background:var(--line-soft);margin:20px 0}.sig-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.sig-clear-btn{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:5px 10px;cursor:pointer;font-family:inherit;transition:all .15s}.sig-clear-btn:hover{background:#f5dcd8;color:var(--danger);border-color:#e8a89f}.sig-clear-btn svg{width:12px;height:12px}.sig-wrapper{background:var(--bg);border:1.5px dashed var(--line);border-radius:12px;position:relative;overflow:hidden;transition:border-color .18s,background .18s}.sig-wrapper:hover{border-color:var(--ink-3)}.sig-wrapper.signed{border-style:solid;border-color:var(--success);background:var(--paper);box-shadow:0 0 0 4px #2f8f6e14}.sig-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink-3);pointer-events:none;transition:opacity .2s}.sig-placeholder svg{width:28px;height:28px;margin-bottom:8px;opacity:.5}.sig-placeholder p{font-size:13px;font-weight:700}.sig-placeholder span{font-size:11px;font-weight:500;opacity:.6;margin-top:3px}.sig-wrapper.signed .sig-placeholder{opacity:0}#signature-canvas{touch-action:none;cursor:crosshair;width:100%;display:block}.sig-hint{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--ink-3);margin-top:7px}.sig-hint svg{width:12px;height:12px}.sig-hint.signed{color:var(--success)}.field-error{font-size:12px;font-weight:600;color:var(--danger);margin-top:6px}.btn-submit{width:100%;height:50px;border-radius:12px;background:var(--ink);color:var(--cream);font-family:Plus Jakarta Sans,sans-serif;font-size:15px;font-weight:700;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 8px 20px -8px #2134488c;transition:all .18s;letter-spacing:.2px}.btn-submit:hover{background:#2a4259;transform:translateY(-1px);box-shadow:0 10px 24px -8px #213448a6}.btn-submit:active{transform:translateY(0)}.btn-submit:disabled{background:var(--line);color:var(--muted);cursor:not-allowed;box-shadow:none;transform:none}.btn-submit svg{width:18px;height:18px}.footer-credit{text-align:center;font-size:11px;font-weight:500;color:var(--ink-3);margin-top:24px}.success-ring{position:relative;width:96px;height:96px;margin-bottom:20px}.success-ring svg.ring{position:absolute;top:0;right:0;bottom:0;left:0;width:96px;height:96px}.success-ring .inner{position:absolute;top:10px;right:10px;bottom:10px;left:10px;background:linear-gradient(135deg,var(--ink),var(--ink-2));border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px -6px #21344873;animation:fadeUp .5s cubic-bezier(.22,1,.36,1) .15s both}.success-ring .inner svg{width:30px;height:30px;color:#eae0cf}.success-title{font-size:24px;font-weight:800;color:var(--ink);letter-spacing:-.5px;margin-bottom:6px;text-align:center;animation:fadeUp .4s cubic-bezier(.22,1,.36,1) .2s both}.success-sub{font-size:14px;font-weight:500;color:var(--muted);text-align:center;line-height:1.6;margin-bottom:24px;animation:fadeUp .4s cubic-bezier(.22,1,.36,1) .25s both}.detail-card{width:100%;background:var(--paper);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:0 4px 14px -6px #21344814;margin-bottom:16px;animation:fadeUp .4s cubic-bezier(.22,1,.36,1) .3s both}.card-accent{height:4px;background:linear-gradient(90deg,var(--ink) 0%,var(--ink-2) 60%,var(--ink-3) 100%)}.card-body{padding:18px 20px 6px}.detail-row{display:flex;align-items:flex-start;gap:13px;padding:13px 0;border-bottom:1px solid var(--line-soft)}.detail-row:last-child{border-bottom:none}.detail-icon{width:38px;height:38px;flex-shrink:0;border-radius:10px;background:var(--bg);border:1px solid var(--line);display:flex;align-items:center;justify-content:center}.detail-icon svg{width:16px;height:16px;color:var(--ink-2)}.icon-blue{background:var(--cream-2)}.icon-teal{background:#edfaf3}.icon-teal svg{color:var(--success)}.icon-indigo{background:#edeafd}.icon-indigo svg{color:#6d28d9}.detail-label{font-size:10px;font-weight:700;color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:3px}.detail-value{font-size:14px;font-weight:700;color:var(--ink);line-height:1.3}.detail-value.large{font-size:17px;font-weight:800}.sig-section{padding:14px 20px 16px;border-top:1px solid var(--line-soft)}.sig-label{font-size:10px;font-weight:700;color:var(--ink-3);letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px}.sig-preview{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 16px;display:flex;align-items:center;justify-content:center;min-height:68px}.sig-preview img{max-height:52px}.timestamp{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:7px 14px;box-shadow:0 1px 4px #2134480f;animation:fadeUp .4s cubic-bezier(.22,1,.36,1) .38s both}.timestamp svg{width:13px;height:13px;color:var(--ink-2)}.countdown-wrap{display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:6px;animation:fadeUp .4s cubic-bezier(.22,1,.36,1) .35s both}.countdown-ring-wrap{position:relative;width:64px;height:64px}.countdown-ring-wrap svg{width:64px;height:64px;transform:rotate(-90deg)}.countdown-ring-bg{fill:none;stroke:var(--line);stroke-width:4}.countdown-ring-fill{fill:none;stroke:var(--success);stroke-width:4;stroke-linecap:round;stroke-dasharray:175.9;stroke-dashoffset:0;transition:stroke-dashoffset 1s linear}.countdown-number{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:var(--ink);letter-spacing:-.04em}.countdown-bar-wrap{width:100%;max-width:280px;height:6px;background:var(--line-soft);border-radius:999px;overflow:hidden}.countdown-bar-fill{height:100%;background:linear-gradient(90deg,var(--success),var(--ink-3));border-radius:999px;width:100%;transform-origin:left;transition:transform 1s linear}.countdown-cancel{font-size:12px;font-weight:600;color:var(--ink-3);text-decoration:none;border-bottom:1.5px dashed var(--line);cursor:pointer;background:none;border-top:none;border-left:none;border-right:none;padding:0;font-family:inherit;transition:color .15s}.countdown-cancel:hover{color:var(--danger);border-color:#e8a89f}
