@import url('https://fonts.googleapis.com/css2?family=Tenor+Sans&family=Nunito+Sans:wght@400;600;700;800&display=swap');
:root{--forest:#103627;--green:#005c1e;--coral:#e9515f;--coral-dark:#a63a33;--rose:#fff0f1;--terracotta:#7a4a45;--ink:#25272a;--muted:#74777d;--paper:#fff;--bg:#f8f6f5;--line:#e9e3e1;--shadow:0 16px 45px #32150e13;--radius:24px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:'Nunito Sans',Arial,sans-serif}button,input,select{font:inherit}button,a{tap-highlight-color:transparent}.topbar{height:76px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(20px,calc((100vw - 1240px)/2));border-bottom:1px solid var(--line);position:sticky;top:0;z-index:40}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--forest);font:18px 'Tenor Sans',sans-serif}.brand img{width:66px;height:60px;object-fit:contain}.brand small{display:block;color:var(--coral);font:800 10px 'Nunito Sans';letter-spacing:1.5px;text-transform:uppercase;margin-top:3px}.account{display:flex;align-items:center;gap:14px}.account>span{text-align:right}.account strong,.account small{display:block}.account strong{font-size:13px}.account small{font-size:10px;color:var(--muted)}.icon-button{border:0;background:var(--forest);color:#fff;border-radius:999px;padding:9px 14px;font-weight:800;cursor:pointer}.shell{max-width:1240px;margin:auto;padding:24px 20px 80px}.trip-banner{display:grid;grid-template-columns:50px minmax(0,1fr) auto;align-items:center;gap:15px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:14px 17px;margin-bottom:16px;box-shadow:0 7px 24px #32150e0a}.trip-mark{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:var(--rose);color:var(--coral);font-size:23px}.trip-copy small,.trip-copy strong,.trip-copy span{display:block}.trip-copy small,.eyebrow{font-size:9px;font-weight:900;letter-spacing:1.8px;color:var(--coral);text-transform:uppercase}.trip-copy strong{font:20px 'Tenor Sans';color:var(--forest);margin:2px 0}.trip-copy span{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trip-buttons,.head-actions{display:flex;gap:8px;align-items:center}.hero{min-height:210px;padding:38px 42px;border-radius:28px;background:linear-gradient(125deg,#103627,#005c1e);color:#fff;display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden;box-shadow:var(--shadow)}.hero:before,.hero:after{content:'';position:absolute;border:1px solid #ffffff25;border-radius:50%;width:310px;height:310px;right:-100px;top:-150px}.hero:after{width:200px;height:200px;right:30px;top:90px}.hero .eyebrow{color:#ffadb4}.hero h1{font:42px 'Tenor Sans';margin:8px 0 7px;position:relative;z-index:1}.hero p{margin:0;color:#ffffffc9;position:relative;z-index:1}.online-pill{position:relative;z-index:2;background:#ffffff18;border:1px solid #ffffff38;padding:9px 13px;border-radius:99px;font-size:11px;font-weight:800}.online-pill.offline{background:#e9515f}.button{border:0;border-radius:99px;padding:11px 18px;font-weight:800;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;white-space:nowrap}.button.primary{background:var(--coral);color:#fff;box-shadow:0 7px 18px #e9515f32}.button.secondary{background:#fff;color:var(--forest);border:1px solid var(--line)}.button:disabled{opacity:.45;cursor:not-allowed}.segment-switcher{display:flex;gap:9px;overflow:auto;padding:18px 2px 7px;scrollbar-width:thin}.segment-switcher button{min-width:220px;max-width:280px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:18px;padding:13px 15px;cursor:pointer;color:var(--ink)}.segment-switcher small,.segment-switcher strong,.segment-switcher span{display:block}.segment-switcher small{font-size:9px;color:var(--coral);text-transform:uppercase;font-weight:900}.segment-switcher strong{font:17px 'Tenor Sans';margin:3px 0}.segment-switcher span{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.segment-switcher button.active{background:var(--coral);border-color:var(--coral);color:#fff;box-shadow:0 8px 23px #e9515f2c}.segment-switcher button.active small,.segment-switcher button.active span{color:#fff}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin:16px 0}.stats article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:15px;display:flex;align-items:center;gap:12px}.stats i{font-style:normal;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;font-weight:900}.stats i.people{background:#eef4f0;color:var(--forest)}.stats i.present{background:#e9f7ef;color:#16824b}.stats i.missing{background:var(--rose);color:var(--coral)}.stats i.rooms{background:#f3ece9;color:var(--terracotta)}.stats strong,.stats small{display:block}.stats strong{font-size:23px;line-height:1}.stats small{color:var(--muted);font-size:10px;margin-top:4px}.tabs{display:flex;gap:4px;overflow:auto;border-bottom:1px solid var(--line);margin-top:20px}.tabs button{border:0;background:transparent;padding:13px 16px;color:var(--muted);font-weight:800;cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap}.tabs button.active{color:var(--coral);border-bottom-color:var(--coral)}.panel{display:none;background:#fff;border:1px solid var(--line);border-radius:0 0 var(--radius) var(--radius);padding:27px;margin-top:-1px;box-shadow:var(--shadow)}.panel.active{display:block}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.panel h2,dialog h2{font:27px 'Tenor Sans';color:var(--forest);margin:5px 0}.panel p{color:var(--muted);margin:0;font-size:13px}.search{display:flex;align-items:center;gap:7px;background:#faf9f8;border:1px solid var(--line);border-radius:99px;padding:0 13px;color:var(--muted)}.search input{border:0;background:transparent;outline:0;width:270px;padding:11px 0}.filter-row{display:flex;gap:7px;align-items:center;margin:20px 0;overflow:auto}.chip{border:1px solid var(--line);background:#fff;border-radius:99px;padding:8px 13px;font-size:11px;font-weight:800;white-space:nowrap;cursor:pointer}.chip.active{background:var(--forest);color:#fff;border-color:var(--forest)}.room-filter{margin-left:auto;font-size:11px;font-weight:800;color:var(--muted);white-space:nowrap}.room-filter select{border:1px solid var(--line);border-radius:10px;padding:7px;margin-left:5px;background:#fff}.people-list{display:grid;gap:10px}.person-card{display:grid;grid-template-columns:minmax(210px,1fr) 150px 170px auto;align-items:center;gap:14px;border:1px solid var(--line);border-radius:19px;padding:13px;transition:.2s}.person-card.is-present{border-left:4px solid #16824b}.person-main{display:flex;align-items:center;gap:11px;min-width:0}.person-main img{width:57px;height:57px;border-radius:17px;object-fit:cover;background:var(--rose)}.person-main strong,.person-main small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-main strong{font-size:14px}.person-main small{font-size:10px;color:var(--muted);margin:2px 0}.room-badge{font-size:9px;color:var(--terracotta);background:#f4eeeb;border-radius:99px;padding:3px 7px;display:inline-block}.attendance-state .status,.attendance-state small{display:block}.status{font-size:11px;font-weight:900}.status.present{color:#16824b}.status.missing{color:var(--coral)}.attendance-state small{font-size:9px;color:var(--muted);margin-top:3px}.inline-room{font-size:9px;color:var(--muted);font-weight:800}.inline-room select{display:block;width:100%;border:1px solid var(--line);border-radius:10px;padding:7px;background:#fff;margin-top:3px}.person-actions{display:flex;gap:5px;justify-content:end;flex-wrap:wrap}.mini{border:1px solid var(--line);background:#fff;color:var(--forest);border-radius:10px;padding:7px 9px;font-size:10px;font-weight:900;text-decoration:none;cursor:pointer}.mini.primary-action{background:var(--coral);color:#fff;border-color:var(--coral)}.mini.whatsapp{background:#e7f8ee;color:#087c3e;border-color:#c9efd8}.mini.danger{color:var(--coral-dark)}.empty,.soft-empty{text-align:center;padding:38px;color:var(--muted)}.empty>div{font-size:32px;color:var(--coral)}.empty h3{color:var(--forest);margin:8px 0 4px}.soft-empty{border:1px dashed var(--line);border-radius:16px;font-size:12px}.split{display:grid;grid-template-columns:330px 1fr;gap:28px;align-items:start}.split .button{margin:15px 6px 0 0}.file-button input{display:none}.scanner-box{position:relative;background:#101713;border-radius:22px;overflow:hidden;min-height:390px}.scanner-box #reader,.scanner-box #reader:empty{display:block!important;width:100%;min-height:390px;position:relative;z-index:2}.scanner-box video{display:block!important;width:100%!important;min-height:390px;object-fit:cover;background:#101713}.scanner-box canvas{max-width:100%!important}#scannerPlaceholder{position:absolute;inset:0;background:#f9f6f6;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);z-index:1}#scannerPlaceholder[hidden]{display:none}.scanner-box #scannerPlaceholder span{font-size:50px;color:var(--coral)}.help{font-size:11px!important;margin-top:12px!important}.mode-switch{display:grid;grid-template-columns:1fr 1fr;background:#f4f0ef;padding:4px;border-radius:99px;margin:20px 0}.mode-switch button{border:0;background:transparent;border-radius:99px;padding:10px;font-weight:800;color:var(--muted);cursor:pointer}.mode-switch button.active{background:#fff;color:var(--coral);box-shadow:0 4px 12px #0000000e}.person-mode{display:none}.person-mode.active{display:block}.field,.dialog-form label,.field-grid label{display:grid;gap:6px;font-size:11px;font-weight:800;color:var(--forest)}.field input,.dialog-form input,.dialog-form select,.field-grid input,.field-grid select{border:1px solid var(--line);border-radius:13px;padding:12px 13px;background:#fff;outline:0}.field input:focus,.dialog-form input:focus,.field-grid input:focus{border-color:var(--coral);box-shadow:0 0 0 3px #e9515f14}.directory-grid{display:grid;gap:9px;margin-top:13px}.directory-person{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:11px;border:1px solid var(--line);border-radius:16px;padding:10px}.directory-person img{width:48px;height:48px;object-fit:cover;border-radius:14px}.directory-person strong,.directory-person small{display:block}.directory-person small{color:var(--muted);font-size:10px}.person-form{display:grid;grid-template-columns:170px 1fr;gap:22px}.photo-field{display:block}.photo-field input{display:none}.photo-field span{height:170px;border:2px dashed #e5d7d5;border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:35px;color:var(--coral);background-position:center;background-size:cover;overflow:hidden}.photo-field small{font-size:10px;background:#ffffffdd;color:var(--forest);padding:5px 8px;border-radius:99px}.photo-column>.button{width:100%;margin-top:8px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.form-actions{grid-column:1/-1;display:flex;justify-content:end;gap:8px;border-top:1px solid var(--line);padding-top:17px}.room-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.room-card{border:1px solid var(--line);border-radius:19px;padding:15px}.room-card header{display:flex;gap:10px;align-items:center}.room-card header>span{width:39px;height:39px;display:grid;place-items:center;background:#f3ece9;color:var(--terracotta);border-radius:13px}.room-card strong,.room-card small{display:block}.room-card strong{font:16px 'Tenor Sans';color:var(--forest)}.room-card small{font-size:9px;color:var(--muted)}.occupants{display:grid;gap:5px;margin-top:13px}.occupants span{display:flex;align-items:center;gap:7px;font-size:11px}.occupants img{width:27px;height:27px;border-radius:50%;object-fit:cover}.room-notes{border-top:1px solid var(--line);padding-top:8px;margin-top:9px!important}.segment-grid{display:grid;gap:9px;margin-top:20px}.segment-card{display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:12px;border:1px solid var(--line);border-radius:17px;padding:12px}.segment-card.inactive{opacity:.55}.segment-number{width:42px;height:42px;border-radius:14px;background:var(--rose);color:var(--coral);display:grid;place-items:center;font-weight:900}.segment-card strong{color:var(--forest)}.segment-card p{font-size:11px}.segment-card small{font-size:9px;color:var(--muted)}.history-search{width:max-content;margin:18px 0}.history-trips{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.history-trip{border:1px solid var(--line);border-radius:18px;padding:14px;display:grid;grid-template-columns:1fr auto;gap:10px;cursor:pointer}.history-trip.selected{border-color:var(--coral);background:#fffafa}.history-trip strong,.history-trip small{display:block}.history-trip strong{font:17px 'Tenor Sans';color:var(--forest);margin:6px 0 3px}.history-trip p{font-size:10px}.history-trip small{font-size:9px;color:var(--muted)}.history-trip>div:last-child{text-align:right}.history-trip b{display:block;color:var(--coral)}.state{display:inline-block;padding:3px 7px;border-radius:99px;font-size:8px;text-transform:uppercase;font-weight:900;background:#e8f5ed;color:#16824b}.state.completed{background:#f0ecea;color:var(--terracotta)}.state.archived{background:#eee;color:#777}.activity-title{font:19px 'Tenor Sans';color:var(--forest);margin:27px 0 7px}.activity{display:grid;grid-template-columns:11px 1fr auto;gap:10px;align-items:center;border-bottom:1px solid var(--line);padding:12px 3px}.activity i{width:8px;height:8px;border-radius:50%;background:var(--terracotta)}.activity i.checkin{background:#16824b}.activity i.uncheck,.activity i.reset{background:#ee9f36}.activity strong{font-size:12px}.activity p{font-size:10px}.activity time{font-size:9px;color:var(--muted)}.user-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:20px}.user-card{border:1px solid var(--line);border-radius:17px;padding:12px;display:grid;grid-template-columns:42px 1fr auto;align-items:center;gap:10px}.user-card>span{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--rose);color:var(--coral);font-weight:900}.user-card strong,.user-card small{display:block}.user-card small{font-size:9px;color:var(--muted)}.user-card em{font-style:normal;font-size:8px;color:#999}.user-card em.enabled{color:#16824b}dialog{border:0;border-radius:25px;padding:28px;width:min(470px,calc(100% - 25px));box-shadow:0 30px 100px #30171355}dialog::backdrop{background:#10201899;backdrop-filter:blur(3px)}.dialog-close{position:absolute;right:13px;top:10px;border:0;background:transparent;font-size:25px;color:var(--muted);cursor:pointer}.dialog-form{display:grid;gap:12px;margin-top:16px}.picker-list{display:grid;gap:7px;max-height:450px;overflow:auto;margin-top:13px}.picker-item{display:grid;grid-template-columns:38px 1fr;text-align:left;gap:10px;border:1px solid var(--line);background:#fff;border-radius:15px;padding:10px;cursor:pointer}.picker-item.selected{border-color:var(--coral);background:#fff8f8}.picker-item>span{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:var(--rose);color:var(--coral)}.picker-item strong,.picker-item small{display:block}.picker-item small{font-size:9px;color:var(--muted)}.camera-dialog{width:min(650px,calc(100% - 25px));text-align:center}.camera-dialog video{display:block;width:100%;max-height:440px;object-fit:cover;background:#111;border-radius:18px;margin-top:15px}.dialog-actions{display:flex;gap:8px;justify-content:center;margin-top:14px}.qr-image{display:block;width:270px;max-width:100%;margin:15px auto}.toast{position:fixed;z-index:80;left:50%;bottom:22px;transform:translate(-50%,110px);opacity:0;background:var(--forest);color:#fff;padding:12px 18px;border-radius:99px;font-size:12px;font-weight:800;box-shadow:var(--shadow);transition:.25s;max-width:calc(100% - 25px);text-align:center}.toast.show{transform:translate(-50%,0);opacity:1}.toast.error{background:var(--coral-dark)}.login-page{min-height:100vh;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 20% 10%,#e9515f55,transparent 30%),linear-gradient(140deg,#103627,#005c1e)}.login-card{width:min(430px,100%);background:#fff;border-radius:30px;padding:37px;box-shadow:0 30px 100px #0005}.login-logo{width:125px;height:103px;object-fit:contain;display:block;margin:auto}.login-card h1{font:31px 'Tenor Sans';color:var(--forest);text-align:center;margin:7px 0}.login-card>p{text-align:center;color:var(--muted);font-size:13px}.login-card form{display:grid;gap:13px;margin-top:25px}.login-card label{display:grid;gap:6px;font-size:11px;font-weight:800}.login-card input{border:1px solid var(--line);border-radius:13px;padding:12px}.login-error{color:var(--coral-dark)!important;font-weight:800!important}.full{width:100%}
@media(max-width:900px){.person-card{grid-template-columns:1fr 150px}.inline-room{grid-column:1}.person-actions{grid-column:1/-1;border-top:1px solid var(--line);padding-top:9px;justify-content:start}.room-grid,.history-trips{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.scanner-box{min-height:330px}.scanner-box #reader,.scanner-box #reader:empty,.scanner-box video{min-height:330px}.panel-head{align-items:flex-start}.head-actions{flex-wrap:wrap}.search input{width:190px}}
@media(max-width:600px){.topbar{height:66px;padding:0 12px}.brand img{width:52px;height:50px}.brand{font-size:14px}.account>span{display:none}.icon-button{padding:8px 11px}.shell{padding:12px 10px 70px}.trip-banner{grid-template-columns:43px 1fr;padding:11px}.trip-mark{width:41px;height:41px}.trip-copy strong{font-size:16px}.trip-buttons{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.hero{padding:27px 22px;min-height:175px;border-radius:22px;align-items:flex-start}.hero h1{font-size:29px}.online-pill{position:absolute;right:15px;top:15px}.stats{gap:5px}.stats article{display:block;text-align:center;padding:10px 4px}.stats i{margin:auto;width:35px;height:35px}.stats strong{font-size:20px;margin-top:5px}.tabs{margin-top:12px}.tabs button{padding:11px 13px;font-size:11px}.panel{padding:18px 13px;border-radius:0 0 20px 20px}.panel-head{display:block}.head-actions{margin-top:12px;display:grid;grid-template-columns:1fr 1fr}.head-actions .search{grid-column:1/-1}.head-actions .button{width:100%}.search{width:100%}.search input{width:100%}.filter-row{margin:14px 0}.room-filter{margin-left:0}.person-card{grid-template-columns:1fr;padding:12px;gap:9px}.attendance-state,.inline-room{grid-column:1}.person-actions{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.person-actions .mini{text-align:center;display:flex;align-items:center;justify-content:center;min-height:39px}.segment-switcher button{min-width:185px}.person-form{grid-template-columns:1fr}.photo-column{width:150px;margin:auto}.photo-field span{height:150px}.field-grid{grid-template-columns:1fr}.form-actions{grid-column:1;display:grid;grid-template-columns:1fr 1fr}.directory-person{grid-template-columns:42px 1fr}.directory-person img{width:42px;height:42px}.directory-person .button{grid-column:1/-1}.room-grid,.history-trips,.user-grid{grid-template-columns:1fr}.segment-card{grid-template-columns:40px 1fr}.segment-card .mini{grid-column:1/-1}.activity{grid-template-columns:9px 1fr}.activity time{grid-column:2}.history-search{width:100%}.scanner-box{min-height:300px}.scanner-box #reader,.scanner-box #reader:empty,.scanner-box video{min-height:300px}.split .button,.split .file-button{width:100%;margin:8px 0 0}.dialog-actions{display:grid}.dialog-actions .button{width:100%}.login-card{padding:28px 22px}}
