:root{--purple:#6b3fa0;--purple2:#9d72cf;--lav:#f4ecff;--ink:#2c1d3d;--line:#b79ad5;--white:#fff;--danger:#c0392b}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;color:var(--ink);background:linear-gradient(135deg,#faf7ff,#f3eaff)}a{text-decoration:none;color:inherit}.container{width:min(1180px,94%);margin:auto}.topbar{background:linear-gradient(90deg,#593083,#8350b8);color:#fff;position:sticky;top:0;z-index:20;box-shadow:0 4px 18px #4d286a33}.topbar-inner{height:64px;display:flex;align-items:center;justify-content:space-between}.brand{font-weight:700}.page-space{padding:28px 0 44px}.hero-card{position:relative;overflow:hidden;text-align:center;padding:40px 20px;border:1px solid #dbc9ed;background:rgba(255,255,255,.86);border-radius:24px;box-shadow:0 15px 40px #68448c1c}.eyebrow{letter-spacing:.3em;font-size:12px;font-weight:700;color:#70409c}.hero-card h1,.sheet-heading h1{font-family:'Great Vibes',cursive;color:#633494;margin:6px 0;font-size:64px;font-weight:400}.hero-card p{color:#6f617c}.flower{position:absolute;font-size:100px;color:#b48ddb;opacity:.28}.flower-left{left:15px;top:5px}.flower-right{right:15px;bottom:-20px}.year-picker{display:inline-flex;align-items:center;gap:20px;margin-top:18px;background:#f2e8ff;padding:8px 12px;border-radius:999px}.year-picker button{border:0;background:#fff;width:34px;height:34px;border-radius:50%;font-size:22px;color:#66358f;cursor:pointer}.month-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:24px}.month-card{background:#fff;border:1px solid #ddcdec;border-radius:18px;padding:20px;box-shadow:0 10px 28px #5e3c7b14;transition:.2s}.month-card:hover{transform:translateY(-4px);border-color:#a97bd0}.month-icon{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#7142a0,#ad7bd4);color:#fff;display:grid;place-items:center;font-weight:700}.month-card h2{margin:14px 0 10px}.month-meta{display:flex;gap:8px;flex-wrap:wrap}.month-meta span{font-size:12px;background:#f4edfb;padding:6px 8px;border-radius:999px;color:#6a4a82}.open-text{display:block;margin-top:18px;color:#72429b;font-weight:600;font-size:14px}.btn{border:0;border-radius:10px;padding:10px 15px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.btn-light{background:#fff;color:#65368d;border:1px solid #dcc7ee}.btn-primary{background:linear-gradient(90deg,#663792,#925fc0);color:#fff}.btn-danger{background:#fff0ee;color:var(--danger);border:1px solid #efb3ad}.sheet-toolbar{display:flex;justify-content:space-between;gap:12px;margin-bottom:16px}.toolbar-actions{display:flex;gap:8px}.attendance-sheet{background:#fff;border:2px solid #8d5ab7;border-radius:16px;overflow:hidden;box-shadow:0 20px 45px #51326c26}.sheet-heading{text-align:center;padding:26px 20px 18px;position:relative;background:linear-gradient(180deg,#fff,#fbf7ff)}.sheet-heading h1{font-size:58px}.sheet-heading p{letter-spacing:.38em;font-weight:700;color:#563277;margin:0}.employee-name{margin-top:10px;color:#694982}.corner-flower{position:absolute;font-size:60px;color:#a679ca;opacity:.5}.corner-flower.left{left:30px;top:22px}.corner-flower.right{right:30px;top:22px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:830px}th,td{border:1px solid var(--line);padding:9px 8px;text-align:center;font-size:14px}thead th{background:linear-gradient(180deg,#9b6bc3,#77459f);color:#fff;position:sticky;top:0}td.text-left{text-align:left}.sunday-row{background:#fff8fb}.edit-btn{border:1px solid #b694d0;background:#f7f0fc;color:#693b91;padding:6px 10px;border-radius:8px;cursor:pointer}.summary-label{text-align:right;font-weight:700;background:#d8bbed}.summary-value{font-weight:700;background:#f7effd}.modal{position:fixed;inset:0;background:#251431aa;display:none;align-items:center;justify-content:center;padding:20px;z-index:50}.modal.show{display:flex}.modal-card{width:min(500px,100%);background:#fff;border-radius:18px;padding:24px;position:relative;box-shadow:0 30px 90px #0005}.modal-close{position:absolute;right:15px;top:12px;border:0;background:transparent;font-size:28px;cursor:pointer}.modal-card h2{margin-top:0}.modal-card label{display:block;font-weight:600;font-size:13px;margin-top:14px}.modal-card input,.modal-card select,.modal-card textarea{width:100%;margin-top:7px;border:1px solid #ccb5dd;border-radius:9px;padding:11px;font:inherit}.form-actions{display:flex;justify-content:space-between;margin-top:20px}.footer{text-align:center;padding:24px;color:#7d6990}@media(max-width:900px){.month-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.month-grid{grid-template-columns:1fr}.hero-card h1{font-size:50px}.sheet-toolbar{flex-direction:column}.toolbar-actions{justify-content:space-between}.toolbar-actions .btn{padding:9px 10px;font-size:12px}.corner-flower{display:none}}
@media print{body{background:#fff}.no-print,.footer{display:none!important}.container{width:100%;max-width:none}.page-space{padding:0}.attendance-sheet{box-shadow:none;border:1px solid #6f4393;border-radius:0}.sheet-heading{padding:10px}.sheet-heading h1{font-size:42px}.sheet-heading p{font-size:11px}th,td{padding:4px 5px;font-size:10px}table{min-width:0}.table-wrap{overflow:visible}@page{size:A4 portrait;margin:8mm}}


.table-input,
.table-select {
    width: 100%;
    min-width: 90px;
    border: 1px solid #d6c5e8;
    background: #ffffff;
    padding: 8px 9px;
    border-radius: 6px;
    font-size: 14px;
    box-sizing: border-box;
    outline: none;
}

.table-input:focus,
.table-select:focus {
    border-color: #7b3fa1;
    box-shadow: 0 0 0 2px rgba(123, 63, 161, 0.15);
}

.hours-input {
    min-width: 70px;
    text-align: center;
}

.action-buttons {
    white-space: nowrap;
}

.row-save-btn,
.row-delete-btn {
    border: none;
    padding: 7px 11px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 600;
    margin: 2px;
}

.row-save-btn {
    background: #6f3596;
    color: white;
}

.row-save-btn:hover {
    background: #552477;
}

.row-delete-btn {
    background: #dc3545;
    color: white;
}

.row-delete-btn:hover {
    background: #b02a37;
}

@media print {
    .table-input,
    .table-select {
        border: none;
        padding: 0;
        box-shadow: none;
        appearance: none;
        background: transparent;
    }
}

