:root{--bg:#eef1f5;--ink:#0e1116;--muted:#627083;--blue:#315bed;--dark:#24394c;--red:#e51e2a;--yellow:#fffbd1;--pink:#f8dada;--school-yellow:#ffda22}
*{box-sizing:border-box} body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}.topbar{height:54px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;border-bottom:1px solid #dbe2ea;position:sticky;top:0;z-index:20}.topbar-actions{display:flex;gap:12px;align-items:center}.topbar a,.btn{background:#fff;border:1px solid #d5dde7;color:#111;text-decoration:none;border-radius:10px;padding:9px 13px;font-weight:700;display:inline-block}.primary,.good{border:0;border-radius:10px;background:#05070a;color:#fff;padding:10px 16px;font-weight:800;cursor:pointer}.good{background:#198754}.muted{color:var(--muted);font-size:13px}.status{font-size:13px;color:#506075}.status.ok{color:#0b7a33}.status.bad{color:#b00020}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}.login-card{background:#fff;border:1px solid #dde5ef;border-radius:18px;padding:24px;max-width:420px;width:100%;box-shadow:0 12px 32px rgba(15,23,42,.08)}.login-card h1{margin:0 0 8px}.login-card label{display:block;margin:14px 0 6px;font-weight:800}.login-card input{width:100%;border:1px solid #cbd5e1;border-radius:10px;padding:12px;font-size:16px}.login-card button{margin-top:18px;width:100%}.danger-box{background:#ffe8e8;border:1px solid #ffb6b6;color:#8d0000;border-radius:10px;padding:10px;margin:12px 0}.admin-wrap{max-width:980px;margin:24px auto;padding:0 16px}.admin-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.admin-head h1{margin:0}.user-list{display:grid;gap:8px}.user-row{background:#fff;border:1px solid #dbe2ea;border-radius:14px;padding:13px 16px;display:grid;grid-template-columns:1fr auto auto;gap:14px;align-items:center;text-decoration:none;color:#111}.user-row:hover{border-color:#7aa7ff}.user-main{display:flex;flex-direction:column}.user-main em{font-size:12px;color:#64748b}.pill{background:#eef2ff;color:#273b85;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.print-app{padding:18px}.workspace-toolbar{max-width:1120px;margin:0 auto 14px;background:#fff;border:1px solid #dbe2ea;border-radius:16px;padding:12px 14px;display:flex;justify-content:space-between;gap:12px;align-items:center}.toolbar-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.footer-save{position:fixed;right:18px;bottom:18px;background:#fff;border:1px solid #dbe2ea;border-radius:999px;padding:8px 10px;display:flex;gap:10px;align-items:center;box-shadow:0 12px 34px rgba(15,23,42,.12);z-index:30}.print-page{position:relative;width:794px;min-height:1123px;margin:0 auto 60px;background:white;overflow:hidden;box-shadow:0 16px 44px rgba(0,0,0,.13);border:1px solid #eef1f5;transform-origin:top center}.rainbow-bg{position:absolute;left:0;top:0;width:250px;height:270px;opacity:.22;background:repeating-linear-gradient(140deg,#e94057 0 20px,#f27121 20px 40px,#ffd200 40px 60px,#7bd88f 60px 80px,#22c1c3 80px 100px,#4776e6 100px 120px,#a64ac9 120px 140px);filter:blur(.3px)}.school-badge{position:absolute;left:48px;top:66px;width:112px;height:112px;border:3px solid #d8c200;border-radius:24px 24px 44px 44px;background:linear-gradient(135deg,#ffe300 0 47%,#e63737 47% 53%,#ffe300 53%);display:grid;place-items:center;transform:rotate(8deg);font-weight:900;font-size:27px;color:#1d2939;box-shadow:0 2px 0 #901}.school-badge span:nth-child(1){position:absolute;left:23px;top:18px}.school-badge span:nth-child(2){position:absolute;left:48px;top:44px}.school-badge span:nth-child(3){position:absolute;right:22px;bottom:18px}.name-pill{position:absolute;border-radius:18px;color:#fff;display:flex;align-items:center;justify-content:center}.name-pill input{color:#fff;text-align:center;font-weight:900}.name-pill input::placeholder{color:#fff}.first-name{left:352px;top:78px;width:300px;height:72px;background:var(--blue);transform:rotate(-7deg)}.first-name input{font-size:32px}.surname{left:464px;top:158px;width:285px;height:64px;background:var(--dark);transform:rotate(3deg)}.surname input{font-size:27px}.info-row{position:absolute;display:grid;grid-template-columns:122px 1fr;align-items:center;gap:14px}.info-row span{background:#000;color:#fff;border-radius:8px;padding:7px 9px;font-size:24px;font-weight:900;text-align:center}.info-row input{font-size:16px;font-weight:800;color:#000}.birthday-row{left:372px;top:252px;width:380px}.house-row{left:382px;top:306px;width:365px}.print-line-input{border:0;background:transparent;outline:0;padding:5px 6px;min-width:0}.print-line-input::placeholder{color:#111;opacity:.75}.photo-slot{position:absolute;background:#e9eef5;border-radius:8px;overflow:hidden;border:1px solid #dbe4ef}.photo-stage{position:absolute;inset:0;overflow:hidden;touch-action:auto;background:#e9eef5}.photo-stage img{position:absolute;left:50%;top:50%;width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none;will-change:transform}.photo-placeholder{position:absolute;inset:0;background:#e9eef5}.upload-input{display:none}.upload-label{position:absolute;left:0;right:0;bottom:0;padding:7px 6px;background:rgba(255,255,255,.72);border:0;color:#617083;cursor:pointer;font-size:14px}.crop-pencil,.remove-image{position:absolute;border:0;border-radius:999px;width:34px;height:34px;font-size:20px;line-height:34px;text-align:center;font-weight:900;box-shadow:0 4px 14px rgba(0,0,0,.18);cursor:pointer}.crop-pencil{left:8px;top:8px;background:#fff;color:#111;display:none}.remove-image{right:8px;top:8px;background:#ff4d4f;color:#fff;display:none}.photo-slot.has-image .crop-pencil,.photo-slot.has-image .remove-image,.photo-slot:has(img) .crop-pencil,.photo-slot:has(img) .remove-image{display:block}.crop-controls{display:none;position:absolute;left:8px;right:8px;bottom:36px;gap:5px;align-items:center;justify-content:center;flex-wrap:wrap}.crop-controls button{border:0;border-radius:8px;background:#111;color:#fff;padding:6px 9px;font-weight:800;cursor:pointer}.crop-controls .good{background:#198754}.photo-slot.crop-active{outline:3px solid #1d70f5;z-index:10}.photo-slot.crop-active .crop-controls{display:flex}.photo-slot.crop-active .photo-stage{touch-action:none;cursor:grab}.main-photo{left:52px;top:132px;width:285px;height:285px}.prompt-panel{position:absolute;border-radius:7px;padding:48px 17px 16px}.prompt-panel h2{position:absolute;top:-18px;left:-12px;margin:0;color:#fff;background:var(--red);border-radius:11px;padding:8px 12px;font-size:20px;line-height:1;transform:rotate(-7deg)}.education-panel h2{left:auto;right:-2px;background:var(--school-yellow);color:#000;transform:rotate(5deg)}.prompt-panel label,.free-question label{font-size:14px;font-weight:900;line-height:1.25;display:block;margin:0 0 7px}.prompt-panel textarea{height:48px}.print-input{width:100%;resize:none;border:0;background:transparent;outline:0;font:15px Arial,Helvetica,sans-serif;color:#111;line-height:1.25;padding:4px 8px}.print-input::placeholder{color:#111;opacity:.65}.memories-panel{left:44px;top:454px;width:314px;height:340px;background:var(--yellow)}.education-panel{left:420px;top:454px;width:318px;height:340px;background:var(--pink)}.free-question{position:absolute;width:310px}.free-question textarea{height:52px}.q-new-lesson{left:50px;top:794px}.q-looking{left:444px;top:794px}.q-miss{left:50px;top:884px}.q-hope{left:444px;top:884px}.bottom-photos{position:absolute;left:44px;right:44px;top:990px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:36px}.bottom-photo{position:relative;width:100%;height:128px}.bottom-photo .upload-label{font-size:12px}.bottom-photo .crop-controls{bottom:28px}.bottom-photo .crop-controls button{font-size:11px;padding:5px 6px}@media(max-width:860px){.print-app{padding:10px}.workspace-toolbar{align-items:flex-start;flex-direction:column}.print-page{transform:scale(calc((100vw - 20px)/794));margin-bottom:calc(-1123px + (1123px * ((100vw - 20px)/794)) + 80px)}}@media print{body{background:#fff}.no-print,.topbar,.workspace-toolbar,.footer-save,.upload-label,.crop-pencil,.remove-image,.crop-controls{display:none!important}.print-app{padding:0}.print-page{box-shadow:none;border:0;margin:0;width:210mm;min-height:297mm;transform:none}.print-input,.print-line-input{border:0!important}.photo-slot{border:0}.photo-placeholder{background:#e9eef5!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}
