:root{--ink:#24212c;--muted:#736d7d;--paper:#fff;--bg:#f7f5fa;--pink:#e84b79;--pink2:#fff0f4;--line:#e9e4ed;--green:#17845c;--shadow:0 10px 35px rgba(45,28,60,.08)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select{font:inherit}button,a{touch-action:manipulation}header{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 max(20px,calc((100% - 1120px)/2));gap:42px;position:sticky;top:0;z-index:5}.brand{font-size:22px;font-weight:800;color:var(--ink);text-decoration:none}.brand span,.logo{color:var(--pink)}nav{display:flex;gap:8px;flex:1}nav a{color:var(--muted);text-decoration:none;padding:10px 12px;border-radius:9px}nav a:hover{background:var(--bg);color:var(--ink)}.account{display:flex;align-items:center;gap:12px}.account form{margin:0}.link{border:0;background:none;color:var(--pink);cursor:pointer}main{max-width:1120px;margin:0 auto;padding:38px 20px 60px}.title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}h1{font-size:30px;line-height:1.15;margin:0 0 7px}h2{margin:0}.title p,.muted{color:var(--muted);margin:0}.toolbar{margin-bottom:14px}.toolbar input{width:min(100%,460px);padding:13px 16px;border:1px solid var(--line);border-radius:12px;background:white;outline:none}.toolbar input:focus,input:focus,select:focus{border-color:var(--pink);box-shadow:0 0 0 3px rgba(232,75,121,.12)}.table-card{background:white;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.reward-row{display:grid;grid-template-columns:130px 1fr 72px;align-items:center;min-height:76px;padding:8px 16px 8px 24px;border-bottom:1px solid var(--line)}.reward-row:last-child{border:0}.number{font-variant-numeric:tabular-nums;color:var(--muted)}.person{display:flex;flex-direction:column}.person small,.person-card small{color:var(--muted)}.heart{justify-self:end;width:52px;height:52px;border:0;border-radius:50%;background:var(--pink2);color:var(--pink);font-size:27px;cursor:pointer;transition:.15s transform,.15s background}.heart:hover{transform:scale(1.06)}.heart:active,.heart.sent{background:var(--pink);color:white;transform:scale(.92)}.heart:disabled{cursor:default}.toast{position:fixed;left:50%;bottom:max(22px,env(safe-area-inset-bottom));transform:translateX(-50%);background:#28232d;color:white;padding:14px 16px;border-radius:13px;display:flex;align-items:center;gap:18px;box-shadow:0 12px 40px #0004;overflow:hidden;z-index:20}.toast[hidden]{display:none}.toast button{border:0;background:none;color:#ff8eb0;font-weight:700;cursor:pointer}.toast i{position:absolute;bottom:0;left:0;height:3px;background:var(--pink);width:100%;animation:shrink 5s linear forwards}@keyframes shrink{to{width:0}}.auth{min-height:100vh;display:grid;place-items:center;padding:20px}.card{background:white;border:1px solid var(--line);border-radius:20px;padding:30px;box-shadow:var(--shadow);width:min(100%,440px)}.auth .card{text-align:center}.logo{font-size:43px;line-height:1}.stack{display:grid;gap:16px;margin-top:24px;text-align:left}.stack label{display:grid;gap:6px;font-weight:600}.stack label small{font-weight:400;color:var(--muted)}input,select{border:1px solid #dcd5e1;border-radius:10px;padding:11px 12px;background:#fff;outline:none;min-width:0}.primary{display:inline-flex;justify-content:center;align-items:center;border:0;background:var(--pink);color:white;border-radius:10px;padding:12px 18px;font-weight:700;text-decoration:none;cursor:pointer}.compact{padding:10px 15px}.alert{background:#fff0f0;color:#a83333;padding:11px;border-radius:9px;margin-top:18px}.success{background:#eaf9f2;color:var(--green);padding:12px 15px;border-radius:10px;margin-bottom:18px}.empty{text-align:center;color:var(--muted);padding:40px}table{border-collapse:collapse;width:100%}th,td{text-align:left;padding:15px 18px;border-bottom:1px solid var(--line)}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#fcfbfd}.right{text-align:right}.count{font-size:18px;font-weight:800;color:var(--pink)}.inline{display:flex;gap:7px}.small{background:white;border:1px solid var(--line);padding:8px 10px;border-radius:8px;cursor:pointer}.badge{display:inline-block;padding:5px 8px;border-radius:99px;background:#f0edf2;color:var(--muted);font-size:12px}.badge.ok{background:#e6f7ef;color:var(--green)}.badge.wait{background:#fff4df;color:#966819}.mobile-cards{display:none}.person-card{background:white;border:1px solid var(--line);border-radius:14px;padding:16px;align-items:center;justify-content:space-between}.person-card>div{display:grid}.person-card .number{font-size:12px}.periods{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.periods>button,.periods summary{border:1px solid var(--line);background:white;border-radius:9px;padding:9px 12px;cursor:pointer}.periods details{position:relative}.custom{position:absolute;right:0;top:45px;z-index:3;background:#fff;padding:14px;display:flex;gap:8px;align-items:center;border-radius:12px;box-shadow:var(--shadow);border:1px solid var(--line)}dialog{border:0;border-radius:18px;padding:26px;width:min(92vw,440px);box-shadow:0 25px 80px #25172d55}dialog::backdrop{background:#241a2d88}.dialog-head{display:flex;justify-content:space-between;align-items:center}.close{font-size:25px;border:0;background:none;cursor:pointer}.narrow{max-width:700px}.narrow .card{width:100%}.copybox{display:flex;gap:8px;margin:20px 0}.copybox input{flex:1}.danger-note{color:#9a5b1f;font-size:13px}.back{color:var(--pink)}
@media(max-width:700px){header{height:auto;min-height:60px;padding:10px 16px;gap:12px;flex-wrap:wrap}.brand{flex:1}header nav{order:3;width:100%;overflow:auto;border-top:1px solid var(--line);padding-top:5px}.account>span{display:none}main{padding:25px 14px 90px}h1{font-size:25px}.title{align-items:flex-start}.reward-row{grid-template-columns:66px 1fr 58px;padding:7px 8px 7px 14px}.heart{width:48px;height:48px}.desktop-table{display:none}.mobile-cards{display:grid;gap:9px}.person-card{display:flex}.periods{overflow:auto;flex-wrap:nowrap;padding-bottom:5px}.periods>*{flex:0 0 auto}.custom{position:fixed;left:14px;right:14px;top:auto;bottom:20px;flex-wrap:wrap}.custom input{flex:1}.toast{width:calc(100% - 28px);justify-content:space-between}.copybox{display:grid}.auth{padding:14px}.card{padding:24px 20px}}.actions{display:flex;gap:6px;flex-wrap:wrap}.actions form{margin:0}.danger{color:#b3263d;border-color:#f0c9d0}.cell-input{width:100%;min-width:130px}.number-input{min-width:80px;width:100px}.periods{display:block}.period-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.period-buttons>button,.period-buttons summary{border:1px solid var(--line);background:white;border-radius:9px;padding:9px 12px;cursor:pointer}.detail-toggle{display:flex;align-items:center;gap:10px;width:max-content;max-width:100%;font-weight:600;cursor:pointer}.detail-toggle input{width:19px;height:19px;accent-color:var(--pink)}.detail-title{margin-top:30px;margin-bottom:14px}.detail-table td{vertical-align:top}.detail-table td strong,.detail-table td small{display:block}.detail-table td small{color:var(--muted)}.edit-card{display:block}.compact-stack{margin:0}.mobile-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}@media(max-width:700px){.period-buttons{overflow:auto;flex-wrap:nowrap;padding-bottom:5px}.detail-table{overflow:auto}.detail-table table{min-width:650px}}.stats-controls{margin-bottom:18px}.period-tabs{display:flex;align-items:center;gap:2px;padding:4px;background:#edeff4;border-radius:18px;overflow:auto}.period-tabs>button,.period-tabs>details>summary{flex:0 0 auto;border:0;background:transparent;color:var(--ink);border-radius:14px;padding:11px 17px;cursor:pointer;white-space:nowrap}.period-tabs>button.active{background:white;box-shadow:0 2px 8px #30213d12}.custom-period{position:relative;flex:0 0 auto}.custom-period summary{list-style:none}.custom-period summary::-webkit-details-marker{display:none}.report-toggle{display:flex;align-items:center;gap:11px;margin-top:12px;padding:12px 14px;background:white;border:1px solid var(--line);border-radius:13px;width:max-content;max-width:100%;cursor:pointer}.report-toggle input{width:20px;height:20px;accent-color:var(--pink)}.report-toggle span{display:grid}.report-toggle small{color:var(--muted)}.stat-person{cursor:pointer;transition:background .15s}.stat-person:hover,.stat-person:focus{background:var(--pink2);outline:none}.chevron{font-size:22px;color:var(--muted);text-align:right}.person-details{margin-top:26px}.detail-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:12px}.detail-heading h2,.detail-heading p{margin:0}.detail-heading p{color:var(--muted)}.role-form,.icon-actions{display:flex;align-items:center;gap:6px}.role-form select{min-width:150px}.icon-actions{justify-content:flex-end}.icon-actions form{margin:0}.icon-button{width:36px;height:36px;padding:8px;display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:9px;background:white;color:#625b69;cursor:pointer;transition:.15s}.icon-button:hover{border-color:#c9bdcf;background:#f8f5fa;color:var(--pink);transform:translateY(-1px)}.icon-button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.danger-icon:hover{color:#b3263d;border-color:#e8afb9;background:#fff2f4}.employee-mobile{background:white;border:1px solid var(--line);border-radius:14px;padding:14px}.mobile-fields{display:grid;grid-template-columns:90px 1fr;gap:9px}.mobile-fields label{display:grid;gap:4px;color:var(--muted);font-size:12px}.mobile-role{margin-top:10px}.mobile-role select{flex:1}.mobile-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:12px;color:var(--muted);font-size:12px}@media(max-width:700px){.period-tabs{border-radius:15px}.period-tabs>button,.period-tabs>details>summary{padding:10px 14px}.report-toggle{width:100%}.custom{z-index:8}.person-details table{min-width:500px}.person-details .table-card{overflow:auto}}.period-tabs{overflow:visible;flex-wrap:wrap}.custom-period[open] .custom{position:fixed;z-index:50;top:50%;left:50%;right:auto;bottom:auto;transform:translate(-50%,-50%);display:grid;grid-template-columns:1fr auto 1fr;gap:10px;width:min(520px,calc(100vw - 28px));padding:20px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 80px #241a2d55}.custom-period[open] .custom .primary{grid-column:1/-1}.custom-period[open] summary{background:#fff!important;box-shadow:0 2px 8px #30213d12}@media(max-width:700px){.period-tabs{overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap}.custom-period[open] .custom{top:50%;bottom:auto;display:grid}}.stat-person .chevron{width:58px;padding-left:14px;padding-right:26px}.person-details table{table-layout:fixed}.person-details thead tr,.person-details tbody tr{display:grid;grid-template-columns:74px minmax(110px,.7fr) minmax(150px,1fr)}.person-details th:nth-child(2),.person-details td:nth-child(2){order:1}.person-details th:nth-child(1),.person-details td:nth-child(1){order:2}.person-details th:nth-child(3),.person-details td:nth-child(3){order:3}.person-details #no-details td{grid-column:1/-1}.person-details th,.person-details td{min-width:0;overflow-wrap:anywhere}.person-details th:nth-child(2),.person-details td:nth-child(2){padding-left:14px;padding-right:8px}.person-details th:nth-child(1),.person-details td:nth-child(1){padding-left:10px;padding-right:10px}.person-details th:nth-child(3),.person-details td:nth-child(3){padding-left:10px;padding-right:14px}@media(max-width:700px){header .account{display:flex;min-width:0;max-width:48vw;gap:5px}header .account>span{display:block;min-width:0;max-width:34vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600}header .account .link{padding:7px 3px;font-size:13px}.stat-person .chevron{width:48px;padding-left:8px;padding-right:20px}.person-details .table-card{overflow:hidden}.person-details table{min-width:0;width:100%}.person-details thead tr,.person-details tbody tr{grid-template-columns:62px minmax(92px,.65fr) minmax(130px,1fr)}.person-details th,.person-details td{padding-top:12px;padding-bottom:12px;font-size:13px}.person-details th:nth-child(2),.person-details td:nth-child(2){padding-left:10px;padding-right:5px}.person-details th:nth-child(1),.person-details td:nth-child(1){padding-left:7px;padding-right:7px}.person-details th:nth-child(3),.person-details td:nth-child(3){padding-left:7px;padding-right:10px}}.stat-person .chevron{font-size:0;vertical-align:middle;line-height:1}.stat-person .chevron::before{content:"";display:inline-block;width:8px;height:8px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translate(-2px,-2px);transform-origin:center}.person-details th{text-transform:none;white-space:nowrap;letter-spacing:0}.person-details td{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person-details td strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:700px){header{display:flex;flex-wrap:nowrap;align-items:center;gap:8px;overflow-x:auto;overflow-y:hidden;min-height:60px;height:60px;padding:8px 14px;scrollbar-width:none;-webkit-overflow-scrolling:touch}header::-webkit-scrollbar{display:none}header .brand{flex:0 0 auto;font-size:20px}header nav{order:initial;flex:0 0 auto;width:auto;border:0;padding:0;overflow:visible;display:flex;gap:2px}header nav a{flex:0 0 auto;padding:8px 9px;white-space:nowrap}header .account{flex:0 0 auto;max-width:none;margin-left:4px;padding-left:10px;border-left:1px solid var(--line)}header .account>span{display:block;max-width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}header .account form{flex:0 0 auto}.stat-person td{vertical-align:middle}.stat-person .chevron{width:44px;padding-left:8px;padding-right:18px;text-align:center}.person-details thead tr,.person-details tbody tr{grid-template-columns:54px minmax(82px,.75fr) minmax(112px,1.1fr)}.person-details th{font-size:clamp(9px,2.8vw,11px);line-height:1.15;white-space:nowrap}.person-details td{font-size:clamp(11px,3.3vw,13px)}.person-details th:nth-child(2),.person-details td:nth-child(2){padding-left:8px;padding-right:4px}.person-details th:nth-child(1),.person-details td:nth-child(1){padding-left:5px;padding-right:5px}.person-details th:nth-child(3),.person-details td:nth-child(3){padding-left:5px;padding-right:8px}}