.slot-card{grid-column-gap:24px;align-items:start;column-gap:24px;display:grid;grid-template-areas:"main status actions";grid-template-columns:minmax(0,1fr) 150px 244px;padding:14px 0}.slot-card+.slot-card{border-top:1px dashed var(--border)}.slot-main{grid-area:main;min-width:0}.slot-ground{color:var(--ink);font-size:16px;font-weight:600;margin:0 0 4px}.slot-card.is-reserved .slot-ground{color:var(--muted)}.slot-meta,.slot-note{align-items:center;color:var(--muted);display:flex;font-size:13px;gap:6px;margin:0}.slot-note{color:var(--amber-ink);font-weight:500;margin-top:6px}.slot-status{display:flex;flex-direction:column;gap:6px;grid-area:status;padding-top:6px}.capacity{display:flex;gap:4px}.capacity span{background:var(--border);flex:1 1;height:6px}.capacity span.filled{background:var(--green)}.slot-sub{color:var(--muted);font-size:12px}.slot-actions{display:flex;flex-wrap:wrap;gap:8px;grid-area:actions;justify-content:flex-end}.slot-teams{list-style:none;margin:10px 0 0;padding:0}.slot-teams li{align-items:baseline;display:flex;flex-wrap:wrap;font-size:14px;gap:2px 8px;padding:2px 0}.slot-team-name{font-weight:600}.slot-teams .slot-sub:before{content:"· "}.cage-time-row{grid-gap:16px;align-items:start;display:grid;gap:16px;grid-template-columns:150px minmax(0,1fr);padding:8px 0}.cage-time-row+.cage-time-row{border-top:1px dashed var(--border)}.cage-time-label{align-items:center;color:var(--ink);display:flex;font-size:13px;font-weight:600;gap:6px;padding-top:8px}.cage-grid{display:flex;flex-direction:column}.cage-row{grid-gap:12px;align-items:center;display:grid;font-size:14px;gap:12px;grid-template-columns:64px minmax(0,1fr) auto;min-height:38px;padding:4px 0}.cage-row+.cage-row{border-top:1px dotted var(--border)}.cage-name{color:var(--muted);font-size:13px}.cage-who{align-items:baseline;display:flex;flex-wrap:wrap;gap:2px 8px;min-width:0}.cage-team{font-weight:600;overflow-wrap:anywhere}.cage-row.is-mine .cage-team{color:var(--green)}.cage-who .slot-sub:before{content:"· "}.cage-open{color:var(--muted)}.cage-action{justify-self:end}@media (max-width:640px){.slot-card{column-gap:16px;grid-template-areas:"main status" "actions actions";grid-template-columns:minmax(0,1fr) 96px;row-gap:12px}.slot-actions{justify-content:stretch}.slot-actions:empty{display:none}.slot-actions .btn{flex:1 1}.cage-time-row{gap:2px;grid-template-columns:minmax(0,1fr)}}.app-container{margin:0 auto;max-width:920px;padding:28px 24px 72px}.app-header{align-items:center;border-bottom:1px solid var(--border);display:flex;gap:16px;margin-bottom:20px;padding-bottom:20px}.app-logo{filter:brightness(1.07);flex-shrink:0;height:56px;mix-blend-mode:multiply;object-fit:cover;width:56px}.app-title{display:flex;flex-direction:column;gap:4px;min-width:0}.app-kicker{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.app-header h1{color:var(--green);font-family:var(--display);font-size:30px;font-weight:500;line-height:1.1;margin:0}.user-info{align-items:flex-end;display:flex;flex-direction:column;gap:8px;margin-left:auto}.user-meta{align-items:center;display:flex;gap:10px}.user-name{font-size:13px;font-weight:600}.user-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.logout-btn,.manage-roles-btn{background:#0000;border:1px solid var(--border);border-radius:3px;color:var(--ink);font-size:12px;font-weight:600;margin:0;padding:6px 12px;transition:background-color .15s,border-color .15s,color .15s}.manage-roles-btn:hover{background:var(--green-soft);border-color:#9baa9f}.logout-btn{border-color:#0000;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.logout-btn:hover{color:var(--red)}.flag{border-left:3px solid var(--green);color:var(--ink);display:inline-block;font-size:10.5px;font-weight:700;letter-spacing:.06em;line-height:1.2;padding-left:7px;text-transform:uppercase}.flag-red,.role-master{border-left-color:var(--red)}.flag-red{color:var(--red)}.flag-amber{border-left-color:var(--amber)}.role-user{border-left-color:var(--border);color:var(--muted)}.eyebrow{display:block;font-size:11px;font-weight:700;letter-spacing:.06em;margin-bottom:14px;text-transform:uppercase}.eyebrow:before{background:var(--red);content:"";display:inline-block;height:3px;margin:0 9px 3px 0;vertical-align:middle;width:18px}.btn{align-items:center;border:1px solid #0000;border-radius:3px;display:inline-flex;font-size:13px;font-weight:600;gap:8px;justify-content:center;margin:0;min-height:38px;padding:8px 16px;transition:background-color .15s,border-color .15s,color .15s;white-space:nowrap}.btn-primary{background:var(--green);border-color:var(--green);color:#fff}.btn-primary:hover{background:var(--green-dark)}.btn-outline{background:#0000;border-color:#9baa9f;color:var(--green)}.btn-outline:hover{background:var(--green-soft)}.btn-small{font-size:12px;min-height:30px;padding:4px 14px}.btn-text-danger{background:none;border:0;color:var(--red);font-size:12px;font-weight:600;margin:0;padding:2px 0;text-decoration:underline;text-underline-offset:3px}.btn-text-danger:hover{color:#7d2731}.tab-bar{border-bottom:1px solid var(--border);display:flex;gap:28px;margin-bottom:28px}.tab-button{background:none;border:0;border-bottom:3px solid #0000;color:var(--muted);font-size:15px;font-weight:600;margin:0 0 -1px;padding:10px 0;transition:color .15s,border-color .15s}.tab-button:hover{color:var(--ink)}.tab-button.active{border-bottom-color:var(--green);color:var(--green)}.section-head{margin-bottom:18px}.section-head h2{color:var(--ink);font-family:var(--display);font-size:26px;font-weight:500;margin:0 0 6px}.section-head p{color:var(--muted);font-size:13px;margin:0;max-width:72ch}.my-booking{font-size:14px;margin:0 0 10px}.my-booking .icon{color:var(--green);margin-right:6px;vertical-align:-2px}.day-row{grid-gap:24px;border-top:1px solid var(--border);display:grid;gap:24px;grid-template-columns:76px minmax(0,1fr);padding:18px 0}.day-row:last-of-type{border-bottom:1px solid var(--border)}.day-slots{min-width:0}.date-block,.day-slots{display:flex;flex-direction:column}.date-block{align-items:flex-start;line-height:1;padding-top:4px}.date-block-weekday{color:var(--muted);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.date-block-day{color:var(--ink);font-family:var(--display);font-size:38px;font-weight:500;margin:4px 0 2px}.day-row.is-today .date-block-day{color:var(--green)}.date-block-month{color:var(--muted);font-size:12px}.date-block-flag{border-left:3px solid var(--red);color:var(--red);font-size:10px;font-weight:700;letter-spacing:.06em;margin-top:10px;padding-left:6px;text-transform:uppercase}.date-block-flag+.date-block-flag{margin-top:6px}.date-block-flag.weekend{border-left-color:var(--amber);color:var(--amber-ink)}.empty-state{margin:0}.empty-state,.loading-container{border-top:1px solid var(--border);color:var(--muted);font-size:14px;padding:36px 0}.loading-container{align-items:center;display:flex;gap:12px}.loading-container p{margin:0}.loading-spinner{animation:spin .8s linear infinite;border:2px solid var(--border);border-radius:50%;border-top-color:var(--green);height:20px;width:20px}@keyframes spin{to{transform:rotate(1turn)}}.login-news-layout{grid-gap:56px;align-items:start;display:grid;gap:56px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);margin-top:12px}.login-card h2{color:var(--ink);font-family:var(--display);font-size:34px;font-weight:500;line-height:1.15;margin:0 0 14px}.login-subtitle{color:var(--muted);font-size:15px;line-height:1.55;margin:0 0 26px;max-width:42ch}.google-login-btn{align-items:center;background:var(--green);border:1px solid var(--green);border-radius:3px;color:#fff;display:inline-flex;font-size:14px;font-weight:600;gap:10px;margin:0;padding:11px 20px 11px 12px;transition:background-color .15s}.google-login-btn:hover{background:var(--green-dark)}.google-icon{background:#fff;border-radius:2px;height:22px;padding:3px;width:22px}.news-section{border-top:3px solid var(--ink);padding-top:14px}.news-section-title{color:var(--ink);font-size:11px;font-weight:700;letter-spacing:.08em;margin:0 0 4px;text-transform:uppercase}.news-item{border-bottom:1px solid var(--border);padding:16px 0}.news-item h4{font-family:var(--display);font-size:20px;font-weight:500;line-height:1.25;margin:8px 0 6px}.news-item h4 a{color:inherit;text-decoration:none}.news-item h4 a:hover{color:var(--green);text-decoration:underline;text-underline-offset:3px}.news-item p{line-height:1.5;margin:0}.news-empty,.news-item p{color:var(--muted);font-size:14px}.news-empty{margin:14px 0 0}.news-empty a,.news-more{color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:3px}.news-more{display:inline-block;font-size:13px;margin-top:14px}.toast-container{display:flex;flex-direction:column;gap:8px;max-width:340px;position:fixed;right:20px;top:20px;z-index:10000}.toast{align-items:center;animation:toast-in .25s ease;background:var(--ink);border-left:4px solid var(--green);border-radius:3px;box-shadow:0 6px 18px #222c282e;color:#fff;display:flex;font-size:13.5px;gap:8px;padding:12px 16px}.toast-success{border-left-color:#6fbf8e}.toast-error{border-left-color:#e0707b}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.confirm-overlay,.role-modal-overlay,.team-modal-overlay{align-items:center;background:#222c2880;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:9999}.confirm-dialog,.role-modal,.team-modal{background:#fff;border-radius:3px;border-top:3px solid var(--green);box-shadow:0 16px 40px #222c2838;width:100%}.role-modal,.team-modal{display:flex;flex-direction:column;max-height:80vh;padding:22px}.role-modal{max-width:480px}.team-modal{max-width:420px}.role-modal-title,.team-modal-title{color:var(--ink);font-family:var(--display);font-size:22px;font-weight:500;margin:0 0 14px}.confirm-dialog{max-width:360px;padding:22px}.confirm-dialog p{font-size:15px;line-height:1.45;margin:0 0 18px}.confirm-dialog-buttons{display:flex;gap:8px;justify-content:flex-end}.confirm-dialog-buttons button{border-radius:3px;font-size:13px;font-weight:600;margin:0;padding:8px 16px}.confirm-yes{background:var(--red);border:1px solid var(--red);color:#fff}.confirm-yes:hover{background:#7d2731}.confirm-no{background:#0000;border:1px solid #9baa9f;color:var(--green)}.confirm-no:hover{background:var(--green-soft)}.role-list{border-bottom:1px solid var(--border);border-top:1px solid var(--border);flex:1 1;min-height:120px;overflow-y:auto}.role-row{align-items:center;border-bottom:1px solid #eef1ee;display:flex;gap:10px;justify-content:space-between;padding:10px 2px}.role-row:last-child{border-bottom:none}.role-row-info{display:flex;flex-direction:column;min-width:0}.role-row-name{font-size:14px;font-weight:600}.role-row-email{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.role-row-actions{border:1px solid var(--border);border-radius:3px;display:flex;flex-shrink:0}.role-option-btn{background:#fff;border:0;border-right:1px solid var(--border);color:var(--muted);font-size:12px;font-weight:600;margin:0;padding:5px 10px;text-transform:capitalize}.role-option-btn:last-child{border-right:0}.role-option-btn:hover:not(:disabled){background:var(--green-soft);color:var(--green)}.role-option-btn.active{background:var(--green);color:#fff;cursor:default}.role-modal-footer{display:flex;justify-content:flex-end;margin-top:14px}.role-modal-close{background:#0000;border:1px solid #9baa9f;border-radius:3px;color:var(--green);font-size:13px;font-weight:600;margin:0;padding:8px 16px}.role-modal-close:hover{background:var(--green-soft)}.team-add-row{display:flex;gap:8px;margin-bottom:14px}.team-add-input,.team-add-select,.team-search{background:#fff;border:1px solid #b9c3bb;border-radius:3px;color:var(--ink);font-size:14px;padding:9px 10px}.team-add-input{flex:1 1;min-width:0}.team-add-select{font-size:13px;max-width:45%}.team-add-btn{background:var(--green);border:1px solid var(--green);border-radius:3px;color:#fff;flex-shrink:0;font-size:13px;font-weight:600;margin:0;padding:8px 16px}.team-add-btn:hover{background:var(--green-dark)}.team-manage-group{margin-bottom:4px}.team-manage-row{align-items:center;border-bottom:1px solid #eef1ee;display:flex;gap:10px;justify-content:space-between;padding:7px 8px}.team-manage-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-remove-btn{background:none;border:0;color:var(--red);flex-shrink:0;font-size:12px;font-weight:600;margin:0;padding:2px 0;text-decoration:underline;text-underline-offset:3px}.team-search{outline:none;width:100%}.team-add-input:focus,.team-search:focus{border-color:var(--green);box-shadow:0 0 0 3px #174b3626}.team-list{border-bottom:1px solid var(--border);border-top:1px solid var(--border);flex:1 1;margin-top:12px;min-height:120px;overflow-y:auto}.team-group-label{align-items:center;color:var(--muted);display:flex;font-size:11px;font-weight:700;gap:8px;letter-spacing:.06em;padding:12px 8px 4px;text-transform:uppercase}.team-group-hint{border-left:2px solid var(--amber);color:var(--amber-ink);font-size:11px;font-weight:600;letter-spacing:0;padding-left:6px;text-transform:none}.team-modal .team-option{background:#0000;border:0;border-left:3px solid #0000;color:var(--ink);display:block;font-size:14px;margin:0;padding:8px 10px;text-align:left;width:100%}.team-modal .team-option.active,.team-modal .team-option:hover{background:#f1f4f0}.team-modal .team-option.selected{background:var(--green-soft);border-left-color:var(--green);color:var(--green);font-weight:600}.team-empty{color:var(--muted);font-size:14px;padding:16px 10px;text-align:center}.team-modal-footer{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-top:14px}.team-selected-label{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-modal-actions{display:flex;flex-shrink:0;gap:8px}.team-modal .team-cancel,.team-modal .team-confirm{border-radius:3px;font-size:13px;font-weight:600;margin:0;padding:8px 16px}.team-modal .team-confirm{background:var(--green);border:1px solid var(--green);color:#fff}.team-modal .team-confirm:disabled{background:#b9c3bb;border-color:#b9c3bb}.team-modal .team-cancel{background:#0000;border:1px solid #9baa9f;color:var(--green)}@media (max-width:640px){.app-container{padding:18px 16px 56px}.app-header{flex-wrap:wrap;gap:12px}.app-logo{height:44px;width:44px}.app-header h1{font-size:24px}.user-info{align-items:center;border-top:1px solid var(--border);flex-direction:row;flex-wrap:wrap;justify-content:space-between;margin-left:0;padding-top:10px;width:100%}.tab-bar{gap:20px}.login-news-layout{gap:36px;grid-template-columns:minmax(0,1fr)}.login-card h2{font-size:28px}.day-row{gap:14px;grid-template-columns:48px minmax(0,1fr)}.date-block-day{font-size:30px}.role-row{align-items:stretch;flex-direction:column;gap:8px}.role-row-actions{width:100%}.role-option-btn{flex:1 1;padding:8px 4px}.team-add-row{flex-wrap:wrap}.team-add-input{flex:1 1 100%}.team-add-select{flex:1 1;max-width:none}}:root{--green:#174b36;--green-dark:#103b29;--green-soft:#e7ede7;--red:#a33642;--amber:#cd762f;--amber-ink:#8a4b17;--ink:#222c28;--muted:#647169;--border:#d9dfd9;--paper:#fafbf8;--display:"Fraunces",Georgia,serif;--sans:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif}*,:after,:before{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;background:#fafbf8;background:var(--paper);color:#222c28;color:var(--ink);font-family:Public Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--sans);margin:0}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #cd762f;outline:3px solid var(--amber);outline-offset:2px}.icon{flex-shrink:0;height:15px;width:15px}
/*# sourceMappingURL=main.fe93f4b0.css.map*/