@font-face{font-family:Rubik;src:url('/assets/Rubik-Regular.ttf')}@font-face{font-family:Rubik;src:url('/assets/Rubik-Bold.ttf');font-weight:700}
:root{--ink:#151b16;--lime:#d7ff00;--bg:#f3f4ee;--line:#dce1d7;--muted:#667064;--green:#246a46;--amber:#7d5516;--red:#ae3935;font-family:Rubik,Arial,sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #6a8700;outline-offset:4px}input:focus{outline:2px solid #7a9800;outline-offset:2px}h1,h2,h3,p{margin-top:0}h1,h2,h3{letter-spacing:-.04em}h2{font-size:30px;line-height:1.18;margin-bottom:12px}.hidden{display:none!important}.muted{color:var(--muted)}.small{font-size:13px;line-height:1.6}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.14em;line-height:1.6}.small-tag{font-size:10px;letter-spacing:.1em;font-weight:700;border:1px solid currentColor;padding:5px 8px;display:inline-flex;white-space:nowrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:54px;padding:14px 22px;border:1px solid transparent;border-radius:9px;font-weight:700;text-decoration:none;font-size:15px;transition:background .15s,transform .15s}.button:hover{transform:translateY(-1px)}.button.primary{background:var(--lime);color:var(--ink)}.button.primary:hover{background:#c9ee00}.button.secondary{background:white;border-color:var(--line)}.button.secondary:hover{background:#f1f4e9}.button.danger{background:#fff3f0;color:var(--red);border-color:#eed0ca}.button.full{width:100%}.text-link{padding:0;background:none;border:0;font-size:13px;text-decoration:underline;text-underline-offset:4px;text-align:left;line-height:1.8}.icon-button{background:none;color:inherit;border:1px solid #53604f;border-radius:6px;min-height:40px;padding:0 12px;font-size:12px}label{display:block;font-size:13px;font-weight:700;margin:22px 0 0}input:not([type=checkbox]):not([type=file]){width:100%;padding:14px 15px;min-height:50px;border:1px solid #cdd4c8;border-radius:7px;background:white;color:var(--ink);font-weight:400;font-size:16px;margin-top:8px}input[type=checkbox]{width:20px;height:20px;accent-color:var(--ink);flex:0 0 auto}.form-error{font-size:13px;color:var(--red);line-height:1.6;margin:12px 0}.optional{font-weight:400;color:var(--muted);margin-left:5px}.login-layout{min-height:100dvh;display:grid;grid-template-columns:1.05fr 1fr}.login-story{background:var(--ink);color:white;padding:48px 60px;display:flex;flex-direction:column;justify-content:space-between;gap:60px;position:relative;overflow:hidden}.brand{width:210px}.login-story h1{font-size:clamp(64px,7vw,110px);line-height:.99;letter-spacing:-.07em;margin:20px 0 30px}.login-story h1 span{color:var(--lime)}.login-story p:not(.eyebrow){font-size:20px;line-height:1.5;color:#c1c9b9}.story-footer{font-size:10px;letter-spacing:.18em;display:flex;align-items:center;gap:10px}.signal{width:9px;height:9px;border-radius:50%;background:var(--lime)}.login-form-wrap{display:grid;place-items:center;padding:50px}.login-form{width:100%;max-width:355px}.login-form .small-tag{margin-bottom:26px}.login-form h2{font-size:42px}.login-form>p{line-height:1.6}.login-form .button{width:100%;justify-content:center;margin-top:10px}.login-form .small{margin-top:26px}.topbar{height:90px;display:flex;align-items:center;justify-content:space-between;padding:18px 40px;background:var(--ink);color:white}.topbar img{width:176px;display:block}.topbar-right{display:flex;align-items:center;gap:20px;font-size:13px}.test-banner{padding:10px 40px;display:flex;align-items:center;gap:14px;border-bottom:1px solid #d5dfab;background:#edf3d9;font-size:12px;color:#424e26}.workspace{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:280px minmax(0,1fr);min-height:calc(100dvh - 194px)}.overview{padding:48px 32px 32px 40px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:34px}.overview h1{font-size:40px;margin-bottom:12px}.overview h1 span{color:#7d9900}.overview .muted{font-size:14px;line-height:1.7}.attendance-count{display:flex;align-items:baseline;gap:10px;margin:8px 0}.attendance-count strong{font-size:76px;letter-spacing:-.08em;line-height:1.15;font-weight:400}.attendance-count>span{font-size:22px;color:var(--muted)}progress{display:block;width:100%;height:6px;border:0;border-radius:4px;background:#dce2d2;overflow:hidden}progress::-webkit-progress-bar{background:#dce2d2}progress::-webkit-progress-value{background:#94ad1a}progress::-moz-progress-bar{background:#94ad1a}.attendance>p{font-size:12px;color:var(--muted);margin:12px 0 0}.small-stats{display:flex;justify-content:space-between;font-size:12px;border-top:1px solid var(--line);padding-top:20px}.small-stats strong{font-size:18px}.overview-bottom{margin-top:auto;display:flex;flex-direction:column;gap:18px}.sync-label{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.sync-label i{display:block;width:6px;height:6px;background:var(--green);border-radius:50%}.desk{padding:44px 48px 50px;min-width:0}.desk-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.desk-heading .eyebrow{color:var(--muted);margin-bottom:10px}.desk-heading h2{font-size:34px;margin-bottom:0}.actions{display:grid;grid-template-columns:1.1fr 1fr;gap:12px;margin-bottom:30px}.actions .button{min-height:66px;justify-content:center;padding-left:24px}.search-wrap{position:relative;display:flex;align-items:center}.search-wrap input{margin:0!important;min-height:60px!important;padding-left:16px!important;padding-right:16px!important}.list-toolbar{display:flex;align-items:center;justify-content:space-between;margin:24px 0 18px;gap:14px}.filters{display:flex;gap:5px;flex-wrap:wrap}.filters button{font-size:12px;border:1px solid transparent;color:var(--muted);background:none;padding:9px 12px;border-radius:6px;min-height:38px}.filters button.active{background:var(--ink);color:white}.people-list{display:flex;flex-direction:column;gap:9px}.person-row{display:flex;align-items:center;gap:15px;width:100%;text-align:left;border:1px solid var(--line);border-radius:9px;background:white;padding:17px 19px;min-height:86px;transition:border-color .15s}.person-row:hover{border-color:#99ac7b}.avatar{height:42px;width:42px;flex:0 0 auto;border-radius:50%;background:#eef1e8;display:grid;place-items:center;font-size:13px;font-weight:700;letter-spacing:-.02em;color:#5c6b4b}.row-name{font-weight:700;font-size:15px;display:block;margin-bottom:5px}.row-meta{display:block;font-size:12px;color:var(--muted);line-height:1.4}.row-main{flex:1;min-width:0}.badge{font-size:10px;font-weight:700;padding:6px 9px;display:inline-block;border-radius:5px;white-space:nowrap}.badge.waiting{background:#edf1e5;color:#606d4f}.badge.present{background:#e3f1e8;color:var(--green)}.badge.pending{background:#fff1d5;color:var(--amber)}.badge.cancelled{background:#f8e9e6;color:var(--red)}.empty{text-align:center;padding:35px 15px}.empty h3{font-size:22px;margin:10px 0}.empty p{font-size:14px;color:var(--muted);line-height:1.6}.app-footer{border-top:1px solid var(--line);padding:22px 40px;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.dialog{border:0;border-radius:16px;box-shadow:0 30px 100px #0003;padding:38px;width:calc(100% - 32px);max-width:520px;max-height:calc(100dvh - 32px);overflow:auto;color:var(--ink)}.dialog::backdrop{background:#111a16a6;backdrop-filter:blur(3px)}.dialog-close{position:absolute;right:15px;top:12px;font-size:12px;background:none;border:0;color:#59634f;min-width:64px;height:36px;padding:0 6px;text-decoration:underline;text-underline-offset:3px}.dialog .eyebrow{color:var(--muted);padding-right:72px}.dialog h2{font-size:30px;overflow-wrap:anywhere}.dialog>p.muted{font-size:14px;line-height:1.6}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.checkbox-label{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.7;font-weight:400}.checkbox-label input{margin:1px 0 0}.checkbox-label a{text-underline-offset:3px}.person-hero{padding-top:10px}.person-hero .avatar{height:62px;width:62px;font-size:20px;margin-bottom:24px}.person-role{font-size:15px;line-height:1.6;color:var(--muted);margin-bottom:22px}.detail-label{font-size:11px;color:var(--muted);margin-bottom:5px}.notice{padding:17px 18px;border-radius:8px;font-size:13px;line-height:1.65;margin:20px 0}.notice.success{background:#e5f2e8;color:#205c3b}.notice.warning{background:#fff3dc;color:#805516}.notice.error{background:#fbe9e6;color:#a03f36}.notice strong{display:block;font-size:16px;margin-bottom:3px}.card-actions{display:flex;flex-direction:column;gap:10px;margin-top:24px}.card-links{display:flex;justify-content:space-between;gap:20px;margin-top:24px;flex-wrap:wrap}.ticket-preview{width:220px;display:block;margin:20px auto;max-width:100%}.history{font-size:11px;color:var(--muted);line-height:1.6;padding-top:20px;margin-top:24px;border-top:1px solid var(--line)}.history p{margin:6px 0}.camera-frame{height:300px;background:#151b16;position:relative;border-radius:10px;overflow:hidden;margin:24px 0 16px}.camera-frame video{width:100%;height:100%;object-fit:cover}.camera-target{position:absolute;inset:42px;border:2px solid var(--lime);border-radius:14px;pointer-events:none}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}details{font-size:13px;margin-top:20px}summary{cursor:pointer;color:var(--muted);padding:8px 0}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:16px 22px;border-radius:10px;box-shadow:0 5px 25px #0003;max-width:calc(100% - 30px);width:max-content;font-size:14px;z-index:100}.connection{position:sticky;top:0;background:#92302f;color:white;text-align:center;padding:12px 20px;font-size:13px;z-index:10}.mail-item{padding:18px 0;border-bottom:1px solid var(--line);font-size:13px;line-height:1.6;overflow-wrap:anywhere}.mail-item .badge{margin-top:8px}.duplicate-choice{display:block;width:100%;background:white;border:1px solid #dfc79f;padding:10px;text-align:left;border-radius:5px;margin:8px 0;color:var(--ink)}.ticket-body{min-height:100dvh;display:grid;place-items:center;padding:28px 16px}.ticket{width:100%;max-width:470px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:white;box-shadow:0 14px 50px #202d1510}.ticket-brand{background:var(--ink);padding:28px 32px}.ticket-brand img{width:190px}.ticket-content{text-align:center;padding:30px}.ticket-content h1{font-size:38px;line-height:1.1}.ticket-content>p{line-height:1.6}.ticket-qr{width:280px;max-width:100%;aspect-ratio:1;display:block;margin:12px auto}.ticket-content .small{margin-top:24px;margin-bottom:0}
@media(min-width:1500px){.workspace{border-left:1px solid var(--line);border-right:1px solid var(--line)}}
@media(max-width:1000px){.workspace{grid-template-columns:230px 1fr}.overview{padding:38px 24px;gap:25px}.desk{padding:38px 28px}.desk-heading h2{font-size:28px}.actions .button{padding-left:16px;font-size:14px;gap:9px}.login-story{padding:40px}.login-form-wrap{padding:36px}}
@media(max-width:700px){.login-layout{grid-template-columns:1fr;min-height:100dvh}.login-story{padding:28px 28px 32px;gap:24px}.login-story .brand{width:155px}.login-story>div:not(.story-footer){display:flex;align-items:flex-end;justify-content:space-between;gap:15px}.login-story .eyebrow,.login-story .story-footer{display:none}.login-story h1{font-size:52px;margin:0;flex:1}.login-story p:not(.eyebrow){font-size:12px;margin:0 0 3px;max-width:135px}.login-form-wrap{padding:34px 28px 45px}.login-form{max-width:440px}.login-form h2{font-size:34px}.login-form .small-tag{margin-bottom:18px}.topbar{padding:16px 20px;height:75px}.topbar img{width:145px}.topbar-right{gap:12px;font-size:11px}.test-banner{padding:10px 20px;font-size:10px;gap:10px;line-height:1.5}.test-banner .small-tag{font-size:8px;padding:4px 6px}.workspace{display:block;min-height:0}.overview{padding:22px 20px;border-right:0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:12px 24px}.overview>div:first-child,.overview .small-stats,.overview .attendance>p,.attendance>.eyebrow{display:none}.attendance-count{margin:0;gap:7px}.attendance-count strong{font-size:42px}.attendance-count>span{font-size:18px}.attendance-count:before{content:'Obecni';font-size:12px;color:var(--muted);margin-right:4px}.attendance progress{margin-top:10px;height:4px}.overview-bottom{gap:7px;align-items:flex-end;justify-content:center}.overview-bottom .text-link{font-size:10px}.sync-label{font-size:10px}.desk{padding:28px 20px 36px}.desk-heading{margin-bottom:22px}.desk-heading .eyebrow{font-size:9px;margin-bottom:7px}.desk-heading h2{font-size:27px}.actions{gap:9px;margin-bottom:22px;grid-template-columns:1fr 1fr}.actions .button{min-height:58px;padding:12px;justify-content:center;font-size:12px;gap:6px}.search-wrap input{font-size:15px!important;min-height:56px!important}.list-toolbar{margin-top:18px;margin-bottom:14px;gap:8px}.filters{gap:2px}.filters button{padding:8px 9px;font-size:11px}.list-toolbar>.small{font-size:10px;white-space:nowrap}.person-row{gap:11px;padding:15px 12px;min-height:82px}.avatar{width:35px;height:35px;font-size:11px}.row-name{font-size:14px}.row-meta{font-size:11px}.badge{font-size:9px;padding:5px 7px}.app-footer{padding:20px;font-size:9px;gap:16px}.dialog{padding:32px 24px;width:calc(100% - 20px);max-height:calc(100dvh - 20px);border-radius:12px}.dialog h2{font-size:28px}.form-row{gap:10px}.camera-frame{height:280px}.ticket-content{padding:26px 22px}.ticket-content h1{font-size:34px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media print{.ticket-body{padding:0;background:white}.ticket{box-shadow:none}.ticket .button{display:none}.ticket{break-inside:avoid}}
