:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#213238;background:#f5f7f6;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}[hidden]{display:none!important}
.button{border:1px solid #d3deda;border-radius:10px;padding:10px 16px;background:white;color:#244147;font-weight:650;min-height:42px;white-space:nowrap}.button:hover,.icon-button:hover{filter:brightness(.96)}.button:focus-visible,.icon-button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #96d5cb;outline-offset:2px}.button.primary{background:#146b64;border-color:#146b64;color:white}.button.subtle{background:#eef4f1;border-color:#e0ebe5}.button.ghost{background:transparent;color:white;border-color:#a2c1bd}.button.danger{color:#9c3737;border-color:#e6b8b8;background:#fff7f7}.button.wide{width:100%}
.eyebrow{font-size:.69rem;letter-spacing:.15em;font-weight:800;color:#227d73;margin:0 0 8px}.muted{color:#71807e}.hint{font-size:.8rem;color:#667773}.brand-mark{width:38px;height:38px;display:grid;place-items:center;background:#dfece5;color:#15584f;border-radius:11px;font-family:Georgia,serif;font-weight:800;font-size:1.1rem}
.login-screen{min-height:100dvh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 75% 15%,#bcded6,transparent 35%),linear-gradient(130deg,#123d46,#1e625a)}.login-card{width:min(100%,450px);background:white;border-radius:22px;box-shadow:0 22px 65px #042e3445;padding:44px}.login-card .brand-mark{margin-bottom:32px}.login-card h1{font-family:Georgia,serif;font-size:2.25rem;line-height:1.12;margin:0 0 14px;color:#15383d}.login-card>p:not(.eyebrow){line-height:1.55}.login-card .wide{margin-top:24px}.login-card .hint{margin-bottom:0;text-align:center}
.auth-field{display:grid;gap:7px;margin-top:18px;color:#526d65;font-size:.84rem;font-weight:700}.auth-field input{width:100%;border:1px solid #d2ddd8;border-radius:9px;padding:12px;color:#273d3d}.auth-message{color:#913d35;background:#fff1ef;border:1px solid #eec0ba;border-radius:9px;padding:10px 12px;font-size:.85rem}.auth-message.success{color:#235b4f;background:#eaf6f2;border-color:#a5d3c2}.login-card .button.subtle.wide{margin-top:10px}
.app-header{background:#174454;color:white}.header-inner{max-width:1380px;margin:auto;padding:16px 28px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand,.header-actions{display:flex;align-items:center;gap:12px}.brand .brand-mark{background:#e5eee9}.brand strong,.brand span{display:block}.brand strong{font-family:Georgia,serif;font-size:1.1rem}.brand span{font-size:.76rem;color:#b9d6d0;margin-top:2px}.private-badge{border:1px solid #8cb1ac;color:#cbe3de;border-radius:999px;padding:6px 10px;font-size:.75rem}
.main-content{max-width:1380px;margin:0 auto;padding:32px 28px 70px}.page-intro{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.page-intro h1{font-family:Georgia,serif;font-size:2rem;color:#183c41;margin:0}.page-intro p:last-child{color:#74827f;margin:8px 0 0}.intro-actions{display:flex;gap:9px;flex-wrap:wrap}.message{background:#eaf6f2;color:#235b4f;border:1px solid #a5d3c2;padding:12px 15px;border-radius:10px;margin-bottom:20px}.message.error{background:#fff1ef;color:#913d35;border-color:#eec0ba}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat,.card{background:white;border:1px solid #e0e7e4;border-radius:15px;box-shadow:0 4px 18px #1c413607}.stat{padding:18px 20px}.stat span,.stat strong{display:block}.stat span{font-size:.78rem;color:#75827e}.stat strong{font-family:Georgia,serif;font-size:1.4rem;color:#244c49;margin-top:7px}
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 350px;align-items:start;gap:20px}.card{overflow:hidden}.card-header{padding:20px 22px;border-bottom:1px solid #ecf0ed}.card-header h2{font-family:Georgia,serif;color:#213d3e;font-size:1.3rem;margin:0}.card-header p:last-child:not(.eyebrow){color:#74827f;font-size:.85rem;margin:7px 0 0}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px}.toolbar-controls{display:flex;align-items:center;gap:6px}.toolbar-controls select{min-width:180px;margin-left:5px}.icon-button{border:1px solid #d9e4df;background:#fff;border-radius:9px;color:#315d57;min-width:36px;height:36px;font-size:1.25rem;line-height:1}.toolbar-controls select,.form-grid input,.form-grid select,.form-grid textarea,.print-controls input{border:1px solid #d2ddd8;border-radius:9px;background:white;color:#273d3d;padding:10px 11px;min-height:40px}.calendar-scroll{overflow-x:auto}.calendar{min-width:660px;padding:14px}.weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays span{font-size:.72rem;text-align:center;color:#86928d;font-weight:800;text-transform:uppercase;padding:6px 0 12px}.day{min-height:102px;border:1px solid #edf0ed;margin:-1px 0 0 -1px;padding:6px;background:white}.day.empty{background:#f8faf8}.day.today{background:#ecf8f3}.day-number{font-size:.78rem;color:#5d726d;font-weight:800}.day.today .day-number{background:#166e63;color:white;border-radius:50%;width:23px;height:23px;display:inline-grid;place-items:center}.day-stays{display:grid;gap:3px;margin-top:6px}.stay{border:0;border-radius:5px;text-align:left;padding:4px 5px;font-size:.68rem;line-height:1.2;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stay.mono-a,.dot.mono-a{background:#d7eee8;color:#206551}.stay.mono-b,.dot.mono-b{background:#e6e9fb;color:#4253a0}.stay.dos-a,.dot.dos-a{background:#fff0d9;color:#886118}.stay.dos-b,.dot.dos-b{background:#f8e3eb;color:#92375c}.legend{display:flex;gap:9px 18px;flex-wrap:wrap;padding:1px 20px 18px;color:#697a74;font-size:.76rem}.legend span{display:flex;align-items:center;gap:6px}.dot{height:10px;width:10px;border-radius:3px;display:inline-block}.side-column{display:grid;gap:20px}.reservation-list{max-height:420px;overflow:auto;padding:8px}.reservation-item{display:block;width:100%;padding:11px 12px;border:1px solid transparent;border-radius:9px;background:white;text-align:left}.reservation-item:hover,.reservation-item.selected{background:#eaf4ef;border-color:#c5ded2}.reservation-item strong,.reservation-item small{display:block}.reservation-item strong{font-size:.85rem;color:#254a43}.reservation-item small{font-size:.72rem;color:#6b7d77;margin-top:4px;line-height:1.3}.source-pill{display:inline-block;margin-left:5px;padding:2px 5px;border-radius:4px;background:#f0f4f0;color:#64736c;font-size:.62rem;text-transform:uppercase}.empty-list{padding:14px;color:#74827f;font-size:.85rem}.detail-body,.card-body{padding:19px 22px}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.detail-grid div{min-width:0}.detail-grid span{display:block;font-size:.71rem;color:#81908b;margin-bottom:4px}.detail-grid strong{display:block;font-size:.85rem;color:#263d3a;overflow-wrap:anywhere}.detail-note{border-top:1px solid #ecf0ed;margin-top:18px;padding-top:14px;white-space:pre-wrap;font-size:.84rem;line-height:1.5}.detail-actions{margin-top:18px}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:20px}.print-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.print-controls label{font-size:.83rem;color:#61746c}.link-list{display:grid;gap:8px}.link-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.84rem}.link-row span{font-weight:650}.link-row button{padding:6px 9px;min-height:32px;font-size:.72rem}
dialog{border:0;border-radius:18px;box-shadow:0 25px 80px #123a4059;padding:0;width:min(92vw,610px);max-height:90dvh;overflow:auto}dialog::backdrop{background:#143a3b8f}.dialog-header{display:flex;justify-content:space-between;align-items:start;padding:24px 26px;border-bottom:1px solid #e6ece9}.dialog-header h2{font-family:Georgia,serif;font-size:1.5rem;margin:0}.form-grid{padding:23px 26px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.form-grid label{display:grid;gap:6px;font-size:.8rem;font-weight:700;color:#526d65}.form-grid .full{grid-column:1/-1}.form-grid textarea{resize:vertical}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:18px 26px;border-top:1px solid #e6ece9}.dialog-actions .danger{margin-right:auto}.print-sheet{display:none}
@media(max-width:1080px){.content-grid{grid-template-columns:1fr}.side-column{grid-template-columns:1fr 1fr}.reservation-list{max-height:340px}}
@media(max-width:720px){.main-content{padding:22px 13px 40px}.header-inner{padding:12px 15px}.private-badge{display:none}.page-intro{display:block}.page-intro h1{font-size:1.6rem}.intro-actions{margin-top:17px}.stats{gap:7px}.stat{padding:12px}.stat strong{font-size:1rem}.stat span{font-size:.68rem}.calendar-toolbar{display:block}.toolbar-controls{margin-top:14px}.toolbar-controls select{flex:1;min-width:120px}.side-column,.bottom-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.login-card{padding:30px}}
@page{size:A4 landscape;margin:12mm}
@media print{body{background:white;color:#111}body>*:not(.print-sheet){display:none!important}.print-sheet{display:block;padding:0;color:#111}.print-sheet h1{font-family:Georgia,serif;font-size:19pt;margin:0 0 3mm}.print-sheet .print-meta{margin:0 0 8mm;font-size:9pt}.print-sheet table{border-collapse:collapse;width:100%;table-layout:fixed}.print-sheet th,.print-sheet td{border:1px solid #777;padding:7px;text-align:left;vertical-align:top;font-size:8pt}.print-sheet th{background:#e9efeb}.print-sheet td p{margin:0 0 5px;break-inside:avoid}.print-sheet small{display:block;font-size:7pt;color:#444}.print-sheet footer{font-size:8pt;margin-top:6mm;color:#444}}
