:root { --bg:#f8f7fb; --surface:#fff; --text:#26232d; --muted:#746f7d; --border:#e6e1ec; --mother:#ef7fa5; --mother-soft:#fff0f5; --father:#5aa8e5; --father-soft:#ecf7ff; --shadow:0 16px 42px rgba(42,31,60,.08); }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; color:var(--text); background:radial-gradient(circle at 15% 0, #fff, transparent 34%),var(--bg); font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif; }
button,input { font:inherit; } button { cursor:pointer; }
.app-shell { width:min(1500px,calc(100% - 64px)); margin:auto; padding:48px 0 64px; }
.hero { display:flex; align-items:end; justify-content:space-between; gap:36px; margin-bottom:28px; }
h1,h2,p { margin:0; } h1 { font-size:clamp(38px,4vw,58px); letter-spacing:-.055em; line-height:1; } .subtitle { margin-top:12px; color:var(--muted); font-size:16px; }
.controls { display:flex; align-items:end; gap:14px; } .date-control { width:210px; } label { display:block; margin-bottom:7px; color:var(--muted); font-size:12px; font-weight:750; }
input { width:100%; padding:11px 12px; border:1px solid var(--border); border-radius:10px; background:var(--surface); color:var(--text); }
.print-actions { display:flex; gap:8px; } button { padding:11px 14px; border:1px solid var(--text); border-radius:10px; background:var(--text); color:#fff; font-size:13px; font-weight:750; box-shadow:0 3px 8px rgba(0,0,0,.08); } button.secondary { color:var(--text); border-color:var(--border); background:var(--surface); }
.schedule-card,.blocks-card { overflow:hidden; margin-bottom:24px; border:1px solid var(--border); border-radius:22px; background:var(--surface); box-shadow:var(--shadow); }
.section-header { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:21px 24px; border-bottom:1px solid var(--border); } h2 { font-size:19px; letter-spacing:-.025em; } .section-header p { margin-top:5px; color:var(--muted); font-size:13px; }
.legend { display:flex; gap:16px; flex:none; font-size:13px; font-weight:700; } .legend span { display:flex; align-items:center; gap:6px; } .legend-dot { width:11px; height:11px; border-radius:50%; } .mother-dot{background:var(--mother)} .father-dot{background:var(--father)}
.four-column-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.schedule-column { min-width:0; border-right:1px solid var(--border); } .schedule-column:last-child { border-right:0; }
.column-header { min-height:77px; padding:16px 18px; background:#fcfbfd; border-bottom:1px solid var(--border); } .column-header strong,.column-header span { display:block; } .column-header strong { font-size:15px; } .column-header span { margin-top:5px; color:var(--muted); font-size:12px; }
.day-row { min-height:74px; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px 16px; border-bottom:1px solid #f0edf3; } .day-row:last-child { border-bottom:0; }
.day-row time { display:flex; align-items:baseline; gap:8px; } .day-row time b { font-size:20px; letter-spacing:-.03em; } .day-row time span { color:var(--muted); font-family:Georgia,"Times New Roman",serif; font-size:20px; font-weight:600; letter-spacing:-.025em; }
.stay { display:inline-flex; align-items:center; gap:6px; padding:6px 8px; border-radius:8px; font-size:12px; font-weight:800; } .stay i { width:7px; height:7px; border-radius:50%; background:currentColor; } .mother .stay { color:#bb3f68; background:var(--mother-soft); } .father .stay { color:#287fbd; background:var(--father-soft); }
.blocks-grid { align-items:stretch; } .blocks-column .column-header { min-height:77px; display:flex; align-items:center; } .blocks-column .column-header strong { display:none; } .blocks-column .column-header span { margin:0; color:var(--text); font-size:17px; font-weight:800; letter-spacing:-.025em; } .block-list { display:grid; gap:10px; padding:14px; min-height:535px; align-content:start; } .stay-block { min-height:83px; padding:13px 14px; border-radius:12px; border-left:7px solid; } .stay-block.mother { border-color:var(--mother); background:var(--mother-soft); } .stay-block.father { border-color:var(--father); background:var(--father-soft); } .block-top { display:flex; justify-content:space-between; gap:8px; font-size:14px; font-weight:850; } .block-top small { color:var(--muted); font-size:11px; } .block-dates { display:grid; gap:4px; margin-top:10px; } .stay-block time { display:block; font-size:12px; font-weight:650; line-height:1.45; } .stay-block time b { font-weight:850; }
@media (max-width:980px) { .app-shell{width:min(100% - 36px,1500px);padding-top:30px}.hero{align-items:flex-start;flex-direction:column}.four-column-grid{grid-template-columns:repeat(2,1fr)}.schedule-column:nth-child(2){border-right:0}.schedule-column:nth-child(-n+2){border-bottom:1px solid var(--border)}.block-list{min-height:0} }
@media (max-width:620px) { .app-shell{width:min(100% - 24px,1500px);padding-top:22px}.controls{width:100%;align-items:stretch;flex-direction:column}.date-control{width:100%}.print-actions{display:grid;grid-template-columns:1fr 1fr}.print-actions button{padding:11px 8px;font-size:12px}.section-header{align-items:flex-start;flex-direction:column}.four-column-grid{grid-template-columns:1fr}.schedule-column,.schedule-column:nth-child(2){border-right:0;border-bottom:1px solid var(--border)}.schedule-column:last-child{border-bottom:0}.day-row{min-height:60px}.column-header{min-height:auto} }
@media print { @page { size:A4 landscape; margin:9mm; } body{background:#fff} .app-shell{width:100%;padding:0}.controls{display:none!important}.hero{margin:0 0 5mm}.hero h1{font-size:25pt}.subtitle{margin-top:2mm;font-size:10pt}.print-section{display:none!important;box-shadow:none;border:1px solid #ccc;border-radius:0;margin:0}.printing.print-daily #dailySection,.printing.print-blocks #blocksSection{display:block!important}.section-header{padding:3mm 4mm}.section-header h2{font-size:14pt}.section-header p{font-size:8pt}.four-column-grid{grid-template-columns:repeat(4,1fr)!important}.schedule-column{border-right:1px solid #ccc!important;border-bottom:0!important}.schedule-column:last-child{border-right:0!important}.column-header{min-height:16mm;padding:3mm 3.5mm}.column-header strong{font-size:10pt}.column-header span{font-size:8pt;margin-top:1mm}.day-row{min-height:17mm;padding:2mm 3mm}.day-row time b,.day-row time span{font-size:11pt}.stay{padding:1.5mm 2mm;font-size:8pt}.blocks-grid .column-header{min-height:16mm}.blocks-column .column-header span{font-size:11pt;margin:0}.block-list{gap:2mm;min-height:0;padding:3mm}.stay-block{min-height:23mm;padding:3mm;border-left-width:4px;border-radius:6px}.block-top{font-size:9pt}.block-top small,.stay-block time{font-size:7pt}.block-dates{gap:1mm;margin-top:2mm}.stay-block time{white-space:nowrap}.legend{font-size:8pt}.legend-dot{width:8px;height:8px} }
